1.3
ISA Server缓存概述
ISA Server对频繁受到请求的对象进行缓存,以改善网络性能。可以配置缓存,确保组织最常使用的,或者是Internet客户端最常访问的的数据都存储在其中。
本节学习目标
l
说明ISA Server正向和反向Web缓存之间的差异
l
解释Cache Array Routing Protocol怎样有助于ISA Server缓存服务器阵列的设置
l
描述ISA Server分层缓存配置的优点
估计学习时间:30分钟
1.3.1
高性能Web缓存
ISA Server的Web代理服务提供对Web对象的缓存,以从缓存中满足客户端请求。如果缓存中的内容无法满足请求,就会启动一个代表该客户端的新请求。一旦远程Web服务器对ISA Server计算机做出响应,ISA Server计算机缓存对原客户端请求的响应。然后,客户端收到一个响应。
ISA Server的快速RAM缓存把访问最频繁的条目存储在RAM中,它从内存中检索此类条目,而不是从磁盘检索,从而优化了响应时间。ISA Server提供优化的磁盘缓存存储,将磁盘的读写访问操作减至最少。这些技术缩短了响应时间,并改善了系统的总体性能。
1.3.2
正向Web缓存服务器
ISA Server可以配置成正向Web缓存服务器,使内部客户端可以访问Internet。ISA Server集中缓存频繁受到请求的Internet对象。防火墙之后的任一Web浏览器均能访问这些对象。从磁盘缓存中服务的对象同从Internet服务的对象相比,所需的处理明显要少得多。这既改善了客户端浏览器的性能,减少了用户响应时间,还降低了Internet连接的带宽消耗。
图1.10说明了ISA Server缓存对象如何使用户受益。虽然该图主要讨论正向Web缓存的情况(内部客户端访问Internet),然而反向Web缓存(Internet用户访问公司的Web服务器)的过程也是一样的。图1.10中说明了下列步骤。
1.
第1个用户(Client1)请求一个Web对象。
2.
ISA Server检查该对象是否存储在缓存内。既然该对象不在ISA Server缓存内,ISA Server便向Internet上的服务器请求该对象。
3.
Internet上的服务器将该对象返回给ISA Server计算机。
4.
ISA Server计算机在其缓存内保留一份副本,并将该对象返回给Client1。
5.
Client2请求同样的对象。
6.
ISA Server计算机从缓存中返回对象,而不是从Internet上获得它。
1.3.3
反向Web缓存服务器
可以在组织的Web服务器前安装ISA Server。Web服务器寄存商用Web业务或者提供对业务伙伴的访问。对于传入Web请求,ISA Server模拟对外Web服务器,用缓存中的Web内容满足客户端的请求,只有无法从缓存服务请求时,才将请求转发给Web服务器。
如图1.11所示,当一个法国的Internet客户端请求法国本地网的Web服务器上的对象时,法国的ISA Server计算机会检查该请求。如果被请求的对象位于该ISA Server计算机内,就将此对象反馈给客户端。用ISA Server计算机上的对象对客户端请求进行服务,在地理上更接近发出请求的客户端,从而节约了性能开支。
如果被请求的对象不在法国的ISA Server计算机内,就将此请求路由到加拿大的ISA Server计算机。如果该对象不在加拿大服务器阵列的缓存内,加拿大的ISA Server阵列就从Web服务器中检索该对象。
1.3.4
定时内容下载
ISA Server利用可定制的缓存下载功能提高缓存性能。通过ISA Server定时内容下载功能,可以根据请求或者时间表,将HTTP内容直接下载到ISA Server的缓存内,然后可以预测组织内部客户端可能请求的HTTP内容,由此来更新ISA Server的缓存,于是客户端就从ISA Server缓存直接访问内容,而不是从Internet访问。
可以下载单个URL、多个URL或者整个Web站点。制定缓存内容下载作业安排时,可以限制应该下载哪些内容,例如限制下载到单个域中或者其后要跟的链接的数量。还可以限制只下载文本内容。安排内容下载进度时,通过设置由ISA Server缓存存入对象,可以设置动态内容缓存,即使HTTP缓存控制报头表明它们未必能进行缓存。根据预先设定的、随意循环的时间安排进行下载。
也可以对传出和传入Web请求配置定时内容下载作业。对于传出Web请求,需要判断Internet上的哪些对象是用户最常请求的,然后定时从Internet检索这些对象并将其载入缓存。对于传入Web请求,可以安排内容下载作业,从内部Web服务器检索内容并将该内容保存在ISA缓存内。
1.3.5
活动缓存
ISA Server可以配置为自动更新缓存内的对象。启用活动缓存后,ISA Server会分析缓存内的哪些对象最常受到访问。当缓存内的常用对象快过期时,ISA Server会自动刷新缓存中的内容。
活动缓存能够使缓存中的对象保持最新。在对象实际过期且还受到客户端访问之前,它就向原Web服务器验证这些对象。它的目的在于加速那些通常需要在源服务器之间往返以使数据重新有效的客户端访问,因为这涉及到某些费用(在代理处理和网络带宽方面),所以目标只是更新客户端将来可能要访问的对象。
仅仅用流行程度来判断哪些对象需要刷新并不是一个很好的标准,因为客户端会手工刷新页面来保持数据更新,所以很多流行的页面从不过期。此外,一个对象可能只是短时间内流行。活动缓存编码设法识别那此严格遵循被访问内容的模式的对象。这些内容可能要活动刷新――过期后又再次受到客户端的请求的对象。
1.3.6
CARP和缓存服务器的扩展性
利用CARP,ISA Server企业版在将多台ISA Server计算机的阵列作为单个逻辑缓存使用时,能够提供无缝扩展和改进的效率。CARP通过阵列利用散列式路由选择提供“请求解析路径”。请求解析路径判断浏览器或下游代理服务器请求的信息位于阵列的什么地方,或者ISA Server是否必须从Internet上第一次获取被请求的信息,然后将其存入缓存并发给用户。
CARP还提供以下益处∶
l
因为CARP提供确定的请求解析路径,所以在代理服务器之间没有查询消息。但是,常规的Internet缓存协议(ICP)网络中却存在查询消息,这样就会导致随着服务器数目的增加网络会更加拥挤。
l
CARP能够清除另外出现在代理服务器阵列中的内容副本。在ICP网络里,一个由5台服务器组成的阵列会迅速发展成基本上是经常被请求的URL的复制缓存。CARP基于散列的路由选择能够防止这种现象的发生,它允许5台代理服务器作为单个的逻辑缓存存在。结果便能对查询做出更快速的响应,而且对服务器资源的利用也会有效得多。
l
CARP拥有积极的可伸缩性。由于采用基于散列的路由,它独立于P2P对等ping。代理服务器添加的越多,CARP速度会更快效率会更高。这和ICP阵列形成了鲜明的对比。ICP阵列必须进行查询以判断缓存信息的位置,生成无关的网络通信,造成效率低下。ICP阵列具有“负可伸缩性”,阵列中添加的服务器越多,确定位置时服务器之间需要的查询就越多。
l
CARP能够自动调节阵列里服务器的添加或删除。基于散列的路由选择意味着无论是添加或删除服务器时,只需要对URL缓存位置进行最小限度的再分配。
l
CARP能够保证缓存对象在阵列里全部服务器之间均匀地分布,或者根据为每一台服务器设置的负载系数进行存储。
由于CARP确定的请求解析路径,不需要为缓存信息保存大量的位置表。浏览器只需对某一对象运行相同的数学函数就能判断它在什么地方。
因为阵列内的ISA Server计算机可能配有不同的硬件,一些计算机可能比其他的功能更强大,您可能希望缓存负载的分配能有所区别。CARP具有可配置的功能:您可以指定阵列内任一特定服务器的负载系数。
此外,CARP能够对传入和传出Web请求进行配置,例如,能够针对所有传出Web请求启动CARP或针对所有传入Web请求禁用CARP。
1.3.7
分层缓存
ISA Server企业版支持链式或分层缓存。“链”这个术语是指单独的ISA Server计算机或阵列之间的一种分层连接。客户端的请求通过缓存服务器链向上游传送,直到发现被请求的对象。当对象位于上游服务器内时,它会被每一个服务器存入缓存,直到该对象返回给客户端。链是分配服务器负荷和容错的一种有效方法。您可以为分支机构或部门分层布置ISA Server计算机。
图1.12举例说明了分支机构的客户端如何请求Internet对象。该请求被发给分支机构的ISA Server计算机,然后在发送至Internet之前发送到区域总部或公司总部。从Internet检索该对象后,总公司的ISA Server缓存被请求的对象,并且返回至分支机构的ISA Server。分支机构的ISA Server缓存该对象然后返回给客户端。这种情况下,分层缓存非常有用,因为对象只在最开始通过总公司发送到Internet,而后来的对同一对象的请求则直接从分支机构的ISA Server阵列得到服务。
因为链式缓存能够在离用户更近的地方启用缓存,因此对整个公司而言至关重要。例如,在企业内,缓存内容可以跨越组织网络边缘的单一的中枢位置,移向分支机构和工作组。缓存能够向地区ISP入网点移动而不是向中央ISP入网点移动。此外,链式缓存提供容错功能,因为当主路由不工作时,它提供一个后备路由接替工作。
1.3.8
Web Proxy路由
Web Proxy路由规则进一步汲取了链的概念,它允许根据目的有条件地发送请求。例如,一个公司在英国拥有分支机构,它可以在该分支机构中安装ISA