web缓存 cdn缓存_通过Web缓存减少网络流量

web缓存 cdn缓存

就像在大众目的地之间移动人群的大众运输系统一样,Web缓存系统对大众网站的URL请求也是如此。 您可以使用Web缓存将用户引导到快速目的地。

Web缓存存储流行网页的本地副本,以便用户可以更快地访问它们。 高速缓存会聚合对网页的所有单个请求,并在调用所请求的网站时将单个请求作为其代理发送到原始站点。 (但不要将Web缓存与代理服务器混淆。后者充当中介,在网络用户和外部世界之间放置防火墙。代理服务器可以使您的传出网络连接更安全,但并不能减少网络连接。当高速缓存接收到其内容的副本时,它将进行进一步的复制并将其传递给发出请求的用户。

缓存中

Web缓存可以通过减少传入请求的数量来减轻Web服务器的负载。 浏览器从缓存中检索部分数据,而不是直接从服务器中检索。 但是,大多数Web内容提供者无法访问或控制哪些用户或多少用户到达其站点。 缓存服务器需要比Web服务器更靠近用户端。 (Web负载平衡方案将传入的负载分布在Web内容提供商端的多台服务器上,但这完全是另外一回事。)Web缓存的最明显的受益者是用户,该用户避免了浏览时的交通拥堵。

网络管理员和远程网站也将从中受益。 根据美国应用网络研究国家实验室(NLANR)的数据,拥有大量客户端的大型缓存可能会占用高达50%的匹配,否则这些匹配将单独通过网络到达原始站点。 NLANR在1996年进行的研究表明,典型的缓存可以轻松实现预期命中率的30%。 因此,从统计学上讲,Web缓存可以消除通常在WAN线路上流出的至少30%的Web流量。 如果您要为兆字节支付美元,那么Web缓存可以在相对较短的时间内为您节省可观的费用。 即使您使用固定速率的WAN连接,缓存也可以提高客户满意度,因为它可以加快所有人的访问速度。 有关缓存如何为所有用户执行公共服务器的更广阔的视野,请参阅本文后面的全局缓存项目 。

PC具有用于经常调用的代码的内存缓存,并且大多数浏览器程序都具有本地缓存??,这些缓存将最近浏览的Web页存储在内存或磁盘中。 Web缓存还存储经常访问的网页,但是它的运行规模更大。

使用缓存服务器进行网络路由

Web缓存除了通过捆绑来自浏览器的重复请求来减少传出流量外,还像自定义分派的特快列车一样,用于解决Webrouting问题:如何通过网络有效地发送Web流量。 不管数据内容如何,??Internet协议路由都会引导低级流量(单个IP数据包),而Webrouting会引导整个网络中特定于应用程序的HTTP流量。 因为Web流量构成了大多数Internet流量,所以改进Webrouting可以提高Internet的整体性能。

Web路由取决于IP路由,因为Web流量仅沿定义为IP路由的路径流动。 但是,单个Web流可以在服务器之间更改,因为它由不同的Web路由器重定向。 Web服务器可以使用HTTP协议的Redirect命令将Web请求发送到其他服务器进行处理。 Web缓存本身将客户端和服务器流量重定向到本地或其他缓存,以提供对页面的更快访问。 最后,用于Web服务器的负载平衡设备可以将传入的客户端请求重定向到同一位置或其他网络位置的一组服务器,以在服务器之间平均分配传入的请求。 您可以将所有这些设备视为引导HTTP流量的Webrouters。

在Web请求离开客户端浏览器工作站之后,开始使用缓存服务器进行Webrouting的过程:

  1. 缓存服务器接收请求的三种方式之一:请求可以直接发送到服务器; 服务器可以主动监视网络流量并从流中挑选请求; 其他网络设备可以选择流量并将其发送到缓存服务器。
  2. 然后,缓存将解析Web请求。 它必须确定请求的页面是否存储在其缓存数据库中。 如果没有,它将检查其伙伴缓存服务器(如果有)是否有请求的数据。
  3. 最后,缓存服务器从其自己的数据库,合作伙伴的数据库或原始Web服务器将数据返回给客户端。

就像公共交通系统使用公共汽车,火车,小火车,穿梭车,出租车和渡轮一样,此三步骤的“接收-处理-返回”过程已以各种形式实现。

接收网络请求

将请求转移到缓存的最基本方法是将浏览器配置为指向缓存作为其代理服务器,这是大多数流行浏览器上的一种选择。 然后,客户端浏览器将对URL的请求直接发送到缓存服务器以检索文档。 此方法可确保缓存尽可能多地处理请求:每个请求都通过缓存服务器。 这种方法的一个缺点是您不能始终控制浏览器是否使用代理。 因此,了解这是典型配置选项的聪明用户可以尝试绕过代理。 另一个缺点:当要配置成百上千个台式机和Web浏览器时,此方法可能会引起管理上的麻烦。

透明代理缓存还将所有流量转移到缓存服务器。 缓存服务器直接位于客户端和远程网站之间的数据路径上,并拦截所有传出的请求。 因为缓存检查每个数据包以查找Web请求,所以它充当高级数据包筛选器。

外部数据包过滤器以及IP第4层和第7层交换机也可以处理和路由客户端请求。 这些设备检查从网络传出的数据包,以识别Web请求并将其重定向到缓存服务器。 数据包过滤器可以检查数据包的任何或所有内容,并根据一些预定义的策略适当地重定向流量。

在传输层,第4层交换机将TCP或UDP重定向到适当的目的地。 因为所有HTTP通信都是基于TCP的,所以大多数此类通信都是先传递的。

在ISO堆栈的应用程序层,第7层交换机仅查找特定于应用程序的协议(例如HTTP)以定向到适当的目的地。

比较处理请求的方法

配置每个客户端Web浏览器可能是一项繁琐的任务。 透明代理缓存对于在没有严格控制网络的情况下在大型网络或组织中进行部署更为实用。 例如,ISP可以在其拨号调制解调器客户端不知情的情况下使用透明代理缓存。 这样的缓存服务器必须位于离传出WAN连接最近的位置,以提供最大的收益。

但是,透明代理缓存的工作要慢得多,这是因为缓存服务器必须处理通过网络的每个IP数据包以查找Web数据包。 因此,透明的代理缓存需要最快的处理器和快速的双网络链接。

使用外部数据包过滤器或特定于层的交换机可以优化设备的功能。 实际上,某些实现具有自己的协议,这些协议可以监视多个高速缓存的活动以达到负载平衡的目的。

处理Web请求

缓存服务器接收到Web请求后,将检查其数据库以查看其是否将请求页面的内容存储在某处。

Web缓存最初是从包含缓存所有数据的单服务器系统开始的。 尽管这样做很有效,但是缓存服务器往往会变得很大。 单个服务器用尽了磁盘空间来存储请求的页面,或者无法足够快地处理传入的请求。 最终,单服务器方案让位给分布式缓存服务器,这些服务器可以分层或并行工作,或两者兼而有之。 这些服务器在它们包含的缓存信息之间进行平衡,将最常请求的数据放置在其层次结构的顶部,以供大多数人查看,而将最不经常请求的数据放置在其底部,更靠近需要它们的特定用户。

某些缓存服务器软件实际上是对现有Web服务器产品的扩展。 在这种情况下,记录Web访问条目没有意义,因此管理员应禁用或限制对服务器日志文件的记录。 高速缓存包含不断变化的信息,并且除非您知道每个高速缓存的条目所包含的内容(它访问的是实际的网站),否则您将不知道客户端的去向。 缓存日志可能还会变得相当大,因为您的所有用户都将对此作出贡献。 它可以像三年级生那样Swift消耗磁盘空间。

单级缓存

缓存服务器本质上是一个代理Web客户端,它在本地存储很多页面。 服务器通过发送请求的网页(如果可用)来响应请求。

从本地高速缓存成功检索称为高速缓存命中,而未成功的称为高速缓存未命中。 如果发生高速缓存未命中,服务器将开始自己访问请求的URL。 对页面的这种首次访问迫使缓存服务器与承载该页面的原始Web服务器联系。 缓存服务器检查以查看是否可以缓存该页面,检索要本地缓存的数据,同时将内容传递给客户端。 除非在特殊情况下,否则用户可能永远不会意识到缓存在客户端和服务器之间。

单个高速缓存服务器是用于改进Web路由的最便宜的解决方案,但是其有效性受到服务器容量的限制。 通过将防火墙,IP路由器和缓存结合在一起,供应商创建了一种适用于小型办公室Intranet的单盒解决方案。 为了更便宜,您可以使用PC,Linux操作系统和公开提供的开源软件来构建具有类似功能的设备。

并行和负载均衡的缓存

单个高速缓存服务器一次只能处理这么多的请求,甚至用大量的内存,磁盘空间和处理器来提高机器的利用率也只能发挥作用。 处理大量请求的更好方法是使多个缓存服务器并行运行,以处理来自相同客户端或不同客户端组的请求。 这些并行缓存服务器通常包含相同的数据,并在它们之间传达更改。

对并行服务器方法的增强涉及为并行服务器创建负载平衡系统。 所有服务器都处理同一组客户端,并平衡它们之间传入请求的负载。

多级缓存

多级缓存将缓存的数据内容分布在网络中的多个服务器上。 最高级别的缓存服务器保存最常访问的页面,最底层的缓存服务器保存最不经常访问的页面。 各个级别组合在称为Web缓存网格的缓存服务器网络中。 缓存之间使用HTTP和特殊的缓存协调协议进行通信,以适当地划分内容并保持服务器之间的一致性。

多级缓存的工作原理与单缓存服务器的缓存几乎相同。 但是,如果在一个服务器级别存在高速缓存未命中,则将请求传播到下一个更高级别,以查看该高速缓存是否包含数据。 只有当请求达到最高级别并且仍然遇到高速缓存未命中时,高速缓存服务器才会直接转到原始网站以检索数据。 (您可以自定义多级缓存的此配置。通常,它会先查找最近的高速缓存服务器,然后再向上链接至顶级服务器,这可能要走几步之遥。)

多级缓存系统对于访问系统的大量客户端(10,000或100,000个)非常有效。 此外,如果您的许多客户广泛??分布在WAN或Internet上,那将是一个更好的解决方案。

返回Web请求

当前返回缓存结果仍然是一个简单的过程。 基本上,包含请求数据的缓存将检查请求数据包,获取源IP地址,然后以原始Web服务器的身份为幌子将数据发送到客户端。

为多个服务器选择协议和选项

在多个服务器之间协调高速缓存的内容是一个挑战。 将第二个缓存服务器添加到系统后,您会遇到此问题:如何在应该包含相同数据的多个服务器之间保持一致性如果添加多个级别的缓存服务器,则必须问另外两个问题:如何知道其他缓存中包含的内容,以及如何将请求重定向到适当的缓存

这是缓存协议出现的地方。主要有三种类型:

  • 查询协议将消息发送到多级系统中的其他缓存,以发现它们是否包含所需的数据。
  • 重定向协议将客户端请求转发到包含所需数据的多级系统中的缓存服务器。
  • 组播协议使用组播网络通信将查询和重定向协议结合在一起。

组播缓存协议与所有缓存服务器同时工作。 多播是创建计算机虚拟网络的能力,该虚拟网络可以同时与其他所有成员直接通信。 借助特殊的组播路由器和协议栈,组播是IP网络协议的功能。 使用此类缓存协议,缓存服务器可以同时查询所有其他服务器,以了解它们是否包含所需的数据。 另外,发送到此类多播组的客户端请求将自动发送给所有成员,从而避免了任何重定向。 在该组中,其中一个缓存服务器将请求的URL识别为其职责范围之内,并适当地发送数据。

多播协议的问题在于它们仍然不是很流行。 此外,通过当前的Internet协议进行多播并不是真正有效的方法,因为所有Internet都是通过大量的单点对点或单播链接连接的,这不利于多播的目的。 仍然存在软件方法,并且可以在Intranet中进行设置。 称为IPv6的下一代Internet协议允许进行真正的多播,但是要广泛实施尚需时日。

设置缓存服务器的协议选项

缓存协议有四个选项:

  • Internet缓存协议(ICP)是Internet工程任务组记录为信息标准的第一个缓存查询。 它是在1996年Harvest项目(早期的Web缓存项目之一)进行的研究期间开发的。 在多级缓存中,ICP在缓存服务器之间发送查询,以检查网格中其他缓存中的特定URL。 不幸的是,ICP超出了一定数量的分布式缓存服务器,效率低下。 如果要设置一个或两个缓存,则ICP的这种限制不会造成问题。 另一方面,如果您要建立一个大型多级缓存并包含十多台服务器,则ICP缓存将花费大量时间来传播更改,从而降低效率。 ICP还不包含任何真正的安全性来保护缓存服务器之间的通信。
  • 超文本缓存协议(HTCP)是一种更好的查询协议,用于发现本地网络上的缓存服务器并查询服务器上是否包含URL。 它包括原始客户端请求中的HTTP标头,以便缓存服务器可以在必要时将其作为请求的一部分进行处理。
  • 高速缓存阵列路由协议(CARP)是用于多级高速缓存系统的重定向协议。 每个高速缓存都使用系统中所有其他高速缓存服务器的列表进行编程。 缓存服务器使用哈希函数,该函数将URL映射到给定的缓存服务器。 然后,它将包含要满足的原始HTTP请求的CARP消息发送到另一个缓存服务器。 Microsoft的代理服务器实现CARP。
  • 思科专有的Web缓存控制协议(WCCP)处理从路由器到缓存网格的请求重定向。 其中一个缓存服务器可以将WCCP消息发送到路由器,以定义URL与缓存服务器之间的映射。 路由器处理传出的数据包并查找HTTP流量。 然后,它使用哈希函数来确定哪个缓存服务器应处理每个请求中的URL,并使用WCCP将流量重定向到该服务器。

为缓存服务器选择硬件

本质上,缓存服务器是重型网络文件服务器。 与可以在功耗较低的计算机上运行的代理服务器或防火墙服务器不同(即使486台计算机也可以很好地用作防火墙),缓存服务器需要处理能力和速度。

为了最有效,高速缓存服务器需要与内部LAN网络和外部WAN的快速网络连接。 通常,规划磁盘上几GB的缓存存储容量,以及至少128 MB的RAM,最好为GB的RAM。 通过增加RAM存储,您可以直接提高系统性能,因为对物理内存的直接访问比对磁盘存储的缓存的访问要快得多。

此外,快速处理器可以提供帮助,但是即使同时使用较慢的CPU,多处理器系统也可以通过同时处理更多请求来提高性能。 缓存服务器管理员认识到RAM和磁盘存储是最重要的性能因素。

基于Linux的缓存服务器应运行在具有512 MB RAM,25 GB SCSI磁盘空间和双100Mbps以太网连接的双处理器350MHz Pentium II系统上,估计价格在2500美元至5,000美元之间。每天可以处理一到两百万个请求,服务于1,000至10,000个用户。

为缓存服务器选择软件

通常,缓存服务器不需要服务器管理员的任何干预,因此最好的选择是一个相当稳定,可靠的平台,该平台可以在无人值守的情况下运行。 商业和免费软件缓存软件均可用。

缓存服务器软件产品
软件 供应商/开发商 缓存类型 平台
Apache Web服务器缓存模块 * Apache信息服务 AIX,BSD / OS,数字UNIX,FreeBSD,HP-UX,IRIX,Linux,NetBSD,NextStep,SunOS,Solaris,SCO UNIX,Windows NT
BorderManager快速缓存 Novell 单层,多层 网络软件
快取引擎 思科公司 单级,多级负载平衡 定制硬件
CacheFlow系列 缓存流 单级,多级负载平衡 定制硬件
CacheRaq 2 钴网络 定制硬件设备
DeleGate * MITI ETL 单级,多级负载均衡 AIX,EWS4800,HP-UX,HI-UX,IRIX,NextStep,NEWS-OS,数字UNIX,Solaris,SunOS,BSD / OS,FreeBSD,Linux,NetBSD,OpenBSD,Windows 95 / NT,OS / 2
HTTPd代理缓存 * CERN,万维网联盟 AIX,BSD / OS,数字UNIX,FreeBSD,HP-UX,IRIX,Linux,NetBSD,NextStep,SunOS,Solaris,Unixware
互联网缓存系统 Novell 单级,多级负载平衡 定制硬件
拼图缓存代理模块 * 万维网联盟 Java
网络缓存 网络设备 单级,多级负载平衡 定制硬件设备
代理服务器 AOL /网景 单级,多级负载平衡 AIX,HP-UX,IRIX,Solaris,Windows NT
代理服务器 微软 单级,多级负载平衡 Windows NT
鱿鱼 * NLANR 单级,多级负载均衡 AIX,数字UNIX,FreeBSD,HP-UX,IRIX,Linux,NetBSD,NextStep,SunOS,Solaris,SCO UNIX,OS / 2
流量服务器 因克托米 单级,多级负载平衡 数字UNIX,FreeBSD,IRIX,Solaris,Windows NT

*免费软件或开源软件

全局缓存项目

在Internet的全球范围内,Web缓存可以通过顶级Internet服务提供商之间的大量高速链接来减少总的通信负担。 通过提供映射到提供商网络拓扑的缓存层次结构,ISP可以创建由缓存服务器组支持的区域缓存区域。 每个区域的缓存均包含其他区域中网站的数据。 因此,加利福尼亚的一名程序员想要查找位于法国的页面将自动定向到加利福尼亚的高速缓存服务器,该服务器保存所需页面的副本,而不是直接从世界中途拉下来。

由于减少Internet流量的公共利益,美国国家科学基金会(NSF)支持了支持大规模缓存系统的研究项目。 NLANR的一个这样的项目目前正在研究一个基于位于美国各地公共机构和大学中的国家超级计算中心的多层缓存系统。 该项目始于1993年的一项研究,该研究表明,在策略上放置多个FTP服务器可以使当时的NSFNet主干网的总流量减少44%。

自1993年以来,互联网拓扑已发生了重大变化,但基本原则仍然成立。 实际上,NLANR的IRCACHE项目的缓存服务器位于建议的中央交换点处或附近。

在英国,类似的项目是联合学术网络(JANET),国家学术网络服务和下一代SuperJANET系统的一部分。 该国家缓存服务也可用于公共用途或缓存对等安排。

IRCACHE和JANET Cache都公开提供公众参与,以将其缓存服务器与项目的分布式系统结合在一起。 这带来了全局高速缓存系统的优势,该系统可以增强您自己的功能,从而加快用户的访问速度。 有关参赛的详细信息,请访问中列出的网站相关主题 。


翻译自: https://www.ibm.com/developerworks/web/library/wa-webcachinga/index.html

web缓存 cdn缓存

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91322 人正在系统学习中 相关资源:实例讲解分布式缓存软件Memcached的Java客户端使用-其它代码类…

来源:cuyi7076

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年5月21日
下一篇 2020年5月22日

相关推荐