ISA Server 2006 中的快取和 CARP
发布日期: 2006 年 9 月 5 日
Microsoft® Internet Security and Acceleration (ISA) Server 2006 为了提升效能与加快网页要求的响应时间而实作了快取功能。您可以设定快取来包含用户经常要求的网页对象。当使用者提出要求时,快取机制会直接从快取中提供要求的对象,而不是向因特网提出要求。网页快取提供两大优点:
• | 加快因特网使用者的访问速度。从快取中提供网页要求,而无需联机至远程因特网服务器。在网页发行实例中,反向快取可加快因特网使用者向 ISA Server 发行的企业网页服务器要求网页内容的存取。 |
• | 减少因特网联机的流量。从快取中提供经常要求的对象,因而能节省因特网联机的带宽。在网页发行实例中,反向快取可减少发行的网页服务器上的负载。 |
ISA Server 提供两种快取类型:
• | 正向快取。正向快取会将已快取的网页对象提供给向因特网提出网页要求的内部使用者。 |
• | 反向快取。反向快取会将已快取的内容提供给向 ISA Server 发行的内部网页服务器提出要求的外部因特网客户端。 |
• | 在 ISA Server 2006 Enterprise Edition 中,快取数组路由通讯协议 (CARP) 可让 ISA Server 计算机的数组平衡网页流量,及分割其间的快取内容。CARP 可让客户端计算机识别数组中最适合处理网页要求的服务器。请注意,CARP 只能用于正向快取的实例,不适用于反向快取。 |
快取实例
在连出网页 Proxy 实例中,ISA Server 会实作正向快取。在网页发行实例中,则会实作反向快取。
正向快取
如果用户位于受 ISA Server 保护的内部网络中,当他要求存取因特网上的网页内容时,便会执行正向快取。
下图说明当内部使用者要求的内容不在快取内时所进行的步骤。
1. | 使用者启始因特网的网页要求。ISA Server 拦截此要求。 |
2. | ISA Server 检查要求的内容是否位于快取中 (可以是 RAM 型快取或磁盘型快取)。 |
3. | 如果内容不在快取中或已经过期,ISA Server 便会将此要求转送至因特网网页服务器。 |
4. | 因特网网页服务器传回要求的信息。ISA Server 会根据快取设定,将网页内容存放在内存中的网页快取中,这个快取会储存最普遍和最常用的要求内容以供快速撷取。 |
5. | ISA Server 接着会将网页内容传回至提出此要求的使用者。 |
6. | 经过一段时间后 (由快取算法决定),如果用户不再经常要求此内容,ISA Server 便会将此内容复制到磁盘型快取中,然后从 RAM 中清除。此时,唯一的内容复本会保存在磁盘型快取中。 |
7. | 如果之后有其他用户要求储存在磁盘型快取中的内容,ISA Server 便会将此内容传回内存中的快取内。 |
下图说明当内部使用者要求的内容位于快取内时所进行的步骤。
1. | 使用者启始因特网的网页要求。ISA Server 拦截此要求。 |
2. | ISA Server 检查所要求内容的有效版本是否在快取中 (可以是 RAM 型快取或磁盘型快取)。 |
3. | 如果内容尚未过期且仍然有效,ISA Server 便会从快取中撷取内容。 |
4. | ISA Server 接着会将撷取的内容传回至提出此要求的使用者。 |
5. | 经过一段时间后 (由快取算法决定),如果用户不再经常要求内容,ISA Server 便会将此内容复制到磁盘型快取中,然后从 RAM 中清除。此时,唯一的内容复本会保存在磁盘型快取中。 |
6. | 如果之后有其他用户要求储存在磁盘型快取中的内容,ISA Server 便会将此内容传回内存中的快取内。 |
反向快取
当因特网使用者向 ISA Server 发行的网页服务器要求内容时,便会执行反向快取。
下图说明当内部使用者要求的内容位于快取内时所进行的步骤。
1. | 因特网使用者为取得位于企业网页服务器上的内容所传送的要求。ISA Server 拦截此要求。 |
2. | ISA Server 检查快取是否包含要求的内容。如果内容不在快取中或已经过期,ISA Server 便会将此要求转送至企业网络上的网页服务器。 |
3. | 企业网页服务器将要求的信息传回至 ISA Server。 |
4. | ISA Server 会根据快取设定,将网页内容存放在内存中的网页快取内,这个快取会储存最普遍和最常用的要求内容以供快速撷取。 |
5. | ISA Server 接着会将内容传回至提出此要求的因特网使用者。 |
6. | 经过一段时间后 (由快取算法决定),如果用户不再经常要求内容,ISA Server 便会将此内容复制到磁盘型快取中,然后从 RAM 中清除。此时,唯一的内容复本会保存在磁盘型快取中。 |
7. | 如果之后有其他用户要求储存在磁盘型快取中的内容,ISA Server 便会将此内容传回内存中的快取内。 |
ISA Server 会从内存中的网页快取或磁盘型网页快取来满足后续因特网使用者的企业网页资源要求。
当您配置快取磁盘驱动器并藉此启用快取时,会依照预设启用反向快取。在某些情况下,您可能想要停用此设定。例如,您可能要停用此设定,以确保因特网使用者取得发行网站的最新版本。若要这么做,请建立停用快取 http://published_site/* URL 的快取规则,以确保来自组织外对发行网站的要求不会快取任何内容。
快取网页物件
快取对象时,ISA Server 会将对象附加到快取内容档。如果快取内容档已满而无法储存新对象,ISA Server 会使用可评估期限、存取对象的频率及大小的公式,藉此移除快取中的旧对象。
ISA Server 会将对象快取到 RAM 和磁盘。快取到内存的对象比快取到磁盘的对象更能快速撷取。根据预设,会使用 10% 的 RAM 来快取对象。所有其他对象都只会快取到磁盘中。一般而言,RAM 越多,就能提供越高的效能来处理快取对象。较旧的要求会储存在硬盘上。在大型部署中,应使用高效能的硬盘。
并非所有因特网内容均可快取。ISA Server 将不会快取响应或要求标头中包含特定信息的网页,如下所述:
|
标头类型 | 详细资料 |
Cache-Control: no-cache 回应标头 | HTTP 1.1 Cache-control 标头禁止所有快取。 |
Cache-Control: private 回应标头 | HTTP 1.1 Cache-Control: private 标头表示对象不能储存在共享快取中,而且仅供特定客户端使用。 |
Pragma: no-cache 回应标头 | HTTP 1.0 服务器不能使用 Cache-Control 标头。Pragma: no-cache 标头可确保当客户端经由安全 HTTPS 联机与服务器通讯,而服务器传回 Pragma-no-cache 标头与其响应时,将不会快取此响应。 |
Www-Authenticate 回应标头 | 表示需要验证。 |
Set-Cookie 回应标头 | 表示使用浏览器 Cookie 识别使用者的页面 |
Authorization 要求标头 | 除非源服务器将 'cache-control: public' 标头包含在响应中来明确允许此标头,否则不会进行快取。 |
Cache-Control: no-store 要求标头 | 表示快取不得储存要求或其响应的任何部分。 |
如果网站并未针对不得快取的内容正确设定快取控制指示词,ISA Server 可能会将使用者内容传回给恶意使用者。
正向快取 SSL 内容
1. | 请注意,在正向快取实例中,不会快取 SSL 流量。从内部 Web 使用者到安全因特网 HTTPS 服务器的连出要求会经过 ISA Server 通道。如需此实例的详细信息,请参阅 Microsoft TechNet 网站中的 <设定在 SSL 上进行网站的内部客户端存取>(英文)。此文件是针对 ISA Server 2004 所撰写,但也与 ISA Server 2006 相关。 |
快取压缩内容
ISA Server 2006 包含压缩功能,能够更有效率地满足压缩要求。HTTP 压缩是一项全局的 HTTP 原则设定。它会套用在所有透过 ISA Server 与指定的网络或网络对象往返的 HTTP 流量,而非特定规则所处理的流量。HTTP 压缩是由两个网页筛选器提供:
• | 压缩筛选器:此筛选器负责压缩和解压缩 HTTP 要求及响应。此筛选器具有高优先级,且在网页筛选器排序清单中为高顺位。这是因为它负责进行解压缩。在其他任何网页筛选器检视内容之前,必须先进行解压缩。 |
• | 快取压缩内容筛选器:此筛选器负责快取压缩内容,从快取中的压缩内容来处理要求。此筛选器的优先级最低,在网页筛选器排序清单中为低顺位,因为快取可以在所有其他的筛选器处理内容后才进行。 |
快取与压缩相辅相成,能够更有效率地满足压缩要求。下面说明快取与压缩如何相互配合:
• | 内容会以下列其中一种格式来快取: • | 已压缩:以压缩格式来要求内容,并以压缩格式来快取。 | • | 未压缩:以未压缩格式来要求内容,并以未压缩格式来快取。 | • | 未压缩亦不可压缩::如果客户端要求压缩的内容,而快取中的要求未经压缩,则它会以不可压缩的格式储存在快取中。下次再收到对相同压缩内容的要求时,ISA Server 会将该内容识别为不可压缩,转而从未压缩的快取 (而非因特网) 提供服务。经过检查的内容同样也会储存为未压缩的格式。 |
|
• | 内容一旦快取之后,即使变更 [ISA Server 管理] 的 [一般] 节点中的压缩设定,仍会继续由快取提供服务。举例来说,如果一开始就启用压缩内容的内容检查,该内容就会以未压缩的格式储存在快取中。如果客户端要求压缩的内容,则 ISA Server 会先压缩内容,然后才将内容提供给客户端。如果停用内容检查,该内容将继续从快取中提供。在这种情况下,ISA Server 会继续替要求压缩内容的客户端压缩内容,要求服务器提供压缩数据并将压缩内容提供给客户端。这样会影响 ISA Server 处理要求的效能。若要让压缩设定的变更反映在快取内容中,您必须先清除快取。若要清除快取,请透过 ISA Server 管理来停用快取,然后删除快取存放档案,如 Dir1.cdat (ISA Server 缓存文件的预设名称)。在每个设定要快取的磁盘驱动器上,都有一个缓存文件放在 Urlcache 文件夹中。删除缓存文件后,请在 ISA Server 管理中启用快取。另外还有一个范例脚本可说明如何以程序设计方式清除快取。如需详细信息,请参阅Microsoft TechNet 网站中的<删除快取内容>(英文)。在 ISA Server 2006 Enterprise Edition 中,此工具必须在每个数组成员上执行。 |
• | 当 ISA Server 网页筛选器检查连入的压缩内容时,会将压缩的内容解压缩。解压缩后,内容会以解压缩的文字储存在快取中。如果 ISA Server 收到对快取内容的要求,会在传送前将数据重新压缩,而此举将增加响应时间。 |
设定快取设定
请依下列步骤设定快取:
• | 启用和设定快取。根据预设,当您安装 ISA Server 时,实际上会停用快取。您必须在快取磁盘驱动器上配置空间以启用快取。 |
• | 设定快取规则。设定快取规则,以决定从指定的目的地中快取内容的方式,以及从快取中撷取内容的方式。 |
• | 设定内容下载工作。设定内容下载工作可让 ISA Server 立即或于指定时间自动下载内容。例如,ISA Server 可以设定成在离峰时段下载经常要求的内容,进而改善网络效能。 |
启用和设定快取
将快取磁盘驱动器的大小设定为大于零时,即可启用快取。请在 [ISA Server 管理] 的 [快取] 节点中的 [快取磁盘驱动器] 索引卷标上设定快取磁盘驱动器。请注意:
• | 单一缓存文件的大小上限为 64 GB。如需更大的快取存放容量,您可以透过不同的磁盘驱动器将其分割为数个档案。 |
• | 您必须使用格式化为 NTFS 文件系统的磁盘分区来快取,而且磁盘驱动器必须是本机磁盘驱动器。 |
• | 缓存文件是单一的档案。为了提高效率,可以将这个档案放置在每个磁盘分区上。建议将此档案存放在独立的实体磁盘上,与安装操作系统、ISA Server 及网页档案的磁盘分开。这样可减少系统与启动盘的争用。建议您在使用磁盘驱动器进行快取之前,先格式化该磁盘驱动器。 |
• | 您可以对每部服务器设定快取的大小和位置。建议您配置大型快取,因为超过快取大小上限时,对象会从快取中丢弃。 |
• | 藉由检视操作系统性能监视器中的快取性能计数器,即可得知快取是否正在进行中。如需快取性能计数器的详细信息,请参阅 Microsoft TechNet 网站 中的 <ISA Server 2006 的性能计数器参考>(英文)。 |
如需启用和设定快取磁盘驱动器的相关指示,请参阅 ISA Server 联机帮助。
如需快取效能建议的详细信息,请参阅 Microsoft TechNet 网站中的<ISA Server 效能的最佳作法>(英文)。目前,这篇文章指的是 ISA Server 2004,但快取效能信息也与 ISA Server 2006 相关。
重新配置快取磁盘驱动器
当您设定磁盘驱动器进行快取时,ISA Server 会在 drive:\urlcache 文件夹中建立快取内容档案 (Dir1.cdat)。您可以变更这个默认位置。
您可以在磁盘驱动器上指定替代的缓存文件位置,包括环境变量,例如 %cacheDirectory%。如果指定的文件夹不存在,ISA Server 会警告您指定的位置无效,并尝试建立文件夹。
如果改用其他任何快取文件夹,则「网络服务」帐户必须拥有读取根分割及该文件夹所有上层文件夹的权限。若为快取文件夹,则需要下列权限:
• | 网络服务: 完全控制 |
• | 系统: 完全控制 |
• | 系统管理员: 完全控制 |
如果未正确设定权限,可能会发生下列错误事件: 14176: 「磁盘高速缓存 drive:\urlcache\Dir1 无法初始化。请检查先前记录的事件或错误码,识别快取失败的原因。请检查磁盘已连接,且没有毁损。」
设定快取内容
启用快取磁盘驱动器之后,有许多可以让您设定的快取内容。下列设定可指定快取的网页对象,以及是否启用负快取 (Negative Caching):
• | 快取未指定上次修改时间的对象。此设定预设为启用,这表示不含上次修改时间戳的网页或对象仍会快取。 |
• | 快取即使没有 HTTP 200 状态代码为 200 的物件。此设定预设为启用,指定 ISA Server 应快取没有此状态代码的网页。HTTP 200 状态代码是对网页服务器的许可响应,表示已达成要求,对 ISA Server 而言表示已取得完整网页。 |
• | 快取在内存中的 URL 大小上限 (字节)。使用此设定,您可以对在内存中快取的对象设定大小上限。这对于防止过度快取大型对象 (如图形) 很有用。但上限数值太小可能会妨碍快取效能,因为从 RAM 快取提供对象较快。根据预设,ISA Server 会将 RAM 中的 URL 大小限制为 64 KB。 |
负快取可让您指定当所需的网页服务器无法处理要求时,在何种情况下应将过期的快取对象传回至用户。若要指示不应使用负快取,请选取 [不要传回已过期的对象 (传回错误分页)] 设定。若要指示在某些情况下应传回过期的对象,请选取 [只有在过期日期如下时才传回已过期的对象],然后设定下列条件:
• | 少于这个百分比的原始生存时间。在每个快取规则中指定生存时间 (TTL) 值。您可以根据原始 TTL 的百分比,指定应从快取中提供已过期对象的时间长度。例如,如果指定 50,则 ISA Server 传回已过期对象的最长期间会等于原始 TTL 设定的 50%。 |
• | 但不多于 (分钟)。此设定表示,如果对象是在指定的分钟数之前过期,则即使它还在之前指定的 TTL 百分比之内,ISA Server 也不应传回这个已过期的物件。 |
• | 用于快取的可用内存的百分比。此设定表示将用于快取的可用 RAM 百分比。默认值是 10%。 |
设定快取规则
使用 [新增快取规则精灵] 设定快取规则,以指定要储存于快取中的内容类型,以及从快取服务对象的方法。可以以个别规则为基础,使用下列设定来设定要储存在快取中的对象:
• | 快取规则目的地页面。指定快取规则将套用的目的地。您可以将规则套用于单一网站、一组网站或其他任何 ISA Server 网络对象。 |
• | 撷取内容页面。指定如何从快取撷取对象,如下所述: • | 只有在有效版本的对象存在于快取中。如果不存在有效版本,对服务器发出路由要求。选取此设定可指定只有当快取包含要求对象的有效版本时,才处理此要求。如果有效版本不存在,则应从要求的网站处理此要求。 | • | 如果快取中存在任何版本的对象。如果不存在任何版本,对服务器发出路由要求。选取此设定可指定应提供快取中任何可用的要求对象版本。如果已设定此设定,则永远都会服务过期的对象。如果快取中没有对象可提供,则从要求的网站服务要求。 | • | 如果快取中存在任何版本的对象。如果不存在任何版本,舍弃该要求 (永不对此服务器发出路由要求)。选取此设定可指定应提供快取中任何可用的要求对象版本。如果已设定此设定,则永远都会服务过期的对象。如果快取中没有对象可提供,则舍弃此要求并传回错误页面。 |
|
• | 快取内容页面。指定从因特网撷取内容以服务 ISA Server 快取的要求之方式,如下所述: • | 永不,将不会快取任何内容。选择此设定以指定永不快取使用此规则传回给用户的内容。 | • | 如果来源和要求标头标示要快取。选取此设定,以指定如果标头指示快取,则快取使用此规则传回给用户的内容。您也可以指定进一步条件,当来源和要求标头指示要快取时,便快取符合这些条件的要求内容,如下所述: |
|
• | 动态内容。指定即使对象标示成不可快取,ISA Server 仍要快取撷取的物件。 |
• | 用于脱机浏览的内容 (302,307 响应)。指定要快取具有 302 和 307 代码的内容。 |
• | 撷取时要求使用者验证的内容。指定 ISA Server 会快取可能需要存取其验证的内容。请注意,启用此设定后,非验证使用者可能可以存取已快取的内容。 |
• | 快取进阶设定页面。指定进阶设定: • | 不要快取大小超过以下限制的对象。此设定会指定 ISA Server 要快取的对象大小上限。 | • | 快取 SSL 回应。您可以选取要快取 SSL 桥接流量的 SSL 回应。将不会快取 SSL 通道流量。实际上,这表示您可以在反向快取实例中快取 SSL 流量,此时的内部网站是透过 SSL 发行,而 SSL 要求会在 ISA Server 防火墙上终止并桥接到内部网页服务器。无法快取从 LAN 客户端经过 ISA Server 通道到安全因特网网页服务器的连出 SSL 要求。 |
|
• | HTTP 快取页面。设定 HTTP 快取内容,如下所述: • | 启用 HTTP 快取。此设定指定将快取规则设定为快取所要求的 HTTP 对象。 | • | 设定对象的 TTL (内容年龄的 %)。根据 TTL 设定,快取的 HTTP 对象在快取中仍然有效。TTL 设定是以定义在回应标头中的 TTL,以及定义在快取规则中的 TTL 界限为基础。内容年龄百分比是指内容存在时间的百分比。百分比越高,更新快取的频率就越低。 | • | 不少于 (No less than)。这表示 HTTP 对象保留在快取中的最短时间。 | • | 不多于 (No more than)。这表示 HTTP 对象保留在快取中的最长时间。 | • | 也套用这些 TTL 界限到指定期限的来源。此设定可指定即使来源包含过期数据,若它不在指定的 TTL 界限内,仍会覆写其 TTL。 |
|
• | FTP 快取 (FTP Caching) 页面。超过对象的 TTL 时,此对象便被视为过期。然后,会根据负快取组态设定值,从快取中传回内容。您也可以指定 FTP 内容的 TTL。根据默认,所有 FTP 对象的 TTL 都设为一天。 |
默认快取规则
当您安装 ISA Server 时,它会设定默认快取规则。默认规则会经过初始设定,如此便只会从 ISA Server 快取中撷取到有效的要求对象。如果快取中的对象无效,则会从因特网直接撷取它。您无法修改默认快取规则撷取对象的方式。
快取规则会依序排列,最后才处理默认的快取规则。ISA Server 计算机会针对每个新联机依序处理快取规则。第一个规则最先处理。如果要求符合规则指定的条件,便会据此快取要求。否则便处理下一个规则。如此依序处理至最后一个规则 (即默认规则) 并套用至要求。
Microsoft Update 快取规则
从 Microsoft Update 更新企业客户端计算机上的 Microsoft Windows Server™ 2003 及 Windows® 2000 Server 操作系统和其他 Microsoft 产品可能会占用相当可观的带宽。此问题在低带宽联机的情况下会更严重。
为了节省带宽,ISA Server 会包含默认快取规则,可使用幕后智能型传送服务 (BITS) 来快取 Microsoft 更新。BITS 可让您传输大量的数据,而不会降低网络效能。它是透过将数据分成小区块传送、在出现未使用带宽时即加以利用,以及在目的地重组数据的方式,来达成此目的。BITS 功能并不适用于任何其他快取规则。
定义快取磁盘驱动器后便会启用 Microsoft Update 快取规则,必要时可予以停用。根据默认,规则会启用幕后智能型传送服务 (BITS) 快取,而且无法使用 ISA Server 管理 MMC 控制台来停用。
设定内容下载工作
内容下载工作可让您主动依照 HTTP 内容来更新快取,以便预先安排客户端要求。您可以建立内容下载工作,以排定将内容从因特网直接下载到快取,而背景处理会根据预先定义的排程下载内容。排定快取内容下载工作可节省宝贵的网络带宽,并提高整体的快取效能又不影响吞吐量。若要设定排定的下载工作,需要执行下列动作:
• | 启用系统策略规则。必须启用 ISA Server 系统策略规则。如果建立排定的下载工作但未启用这些规则,系统会提供自动启用规则的选项。否则,您可以手动启用规则群组,方法是在 SA Server 管理的 [防火墙] 节点中启用「排定的下载工作」系统策略群组。启用此设定群组时,ISA Server 会封锁来自 ISA Server 计算机的未验证 HTTP 流量。即使其他某些原则规则允许此流量,结果也是一样。若要允许这类流量,无需启用系统策略设定群组,您可以建立存取规则来允许 HTTP 存取所有网络,这样才能有效执行内容下载工作。此外,请新增高优先级的存取规则以允许来自「本机主机」网络的未验证 HTTP 存取。 |
• | 启用本机主机网络以接听网页 Proxy 要求。如果建立排定的下载工作但未启用此设定,系统会提供自动启用此设定的选项。 |
• | 建立排程的快取内容下载工作。您可以使用 [内容下载工作精灵] 建立内容下载工作 (从 [ISA Server 管理] 的 [快取] 节点中的 [内容下载工作] 索引卷标中执行)。您可以为内容下载工作指定下列内容: • | 下载频率页面。指定下载内容的频率。您可以指定此工作只在精灵结束后立即执行一次,或于指定时间执行一次。或者,您可以自动化周期性的下载工作。请注意,只有在执行 Microsoft ISA Server 工作排程器服务时才能执行下载工作。如果是排定为执行一次或每日及每周执行的工作,请指定执行工作的日期与时间。 | • | 内容下载页面。指定要下载内容的来源 URL。您也可以指定 URL 限制。例如,您可以指定是否要限制下载到单一网域、如何遵循内嵌连结、下载可储存的对象数量上限,或是允许此工作建立的同时 TCP 联机数目上限。 | • | 内容快取页面。指定要快取的内容,以及对象到期前在快取中存留的期限: 快取内容。指定是否要快取 URL 中的所有内容,包括重新导向响应 (301、302 及 307)。或者,您可以选择快取来源与要求标头指示要快取的内容。如果来源和要求标头指示要快取,或内容是动态内容,便快取此内容 (即使标头并未指示要快取内容)。 生存时间。指定由工作撷取的对象会在快取中维持多久的有效状态。您可以选择内容要根据响应标头与快取规则设定来保持有效状态。选取 [若响应中未定义则设定 TTL],以便指定唯有当对象没有设定 TTL 的响应标头时,工作才覆写对象的 TTL。如果对象具有 TTL 相关标头,便会根据快取规则进行处置。选取 [覆写对象的 TTL] 以指定下载的内容会标示为新的 TTL。TTL 设定定义着下载的内容会保留在快取中多久。在 [以新的 TTL (分) 标记下载的对象] 中输入想要的 TTL。 |
|
请注意:
• | 如果快取内容下载工作失败,便会在 Windows 事件查看器中记录一个事件。 |
• | 如果下载对象的网页服务器要求客户端验证,则排定的内容下载工作将会失败。 |
Enterprise Edition 中的快取数组路由通讯协议
ISA Server 2006 Enterprise Edition 使用快取数组路由通讯协议 (CARP) 来提供 ISA Server 计算机数组作为单一的逻辑快取。CARP 可让 ISA Server 数组成员有效平衡以网络为主的客户端负载,并于其间分割快取的内容。在客户端部分,CARP 提供客户端计算机必要的信息和算法来识别数组中最适合处理要求的服务器,藉此免除数组成员在数组成员之间转送要求的需要。CARP 也支持服务器本身及链结 Proxy 的数组服务器选项。
CARP 使用哈希型路由在数组成员之间散布 URL 要求,并决定透过数组来解决要求的最佳路径。ISA Server 2006 和 ISA Server 2004 SP2 使用哈希功能来平均散布要求。浏览器或下游 Proxy 知道 URL 要求的信息储存在数组中的确切位置,也知道先前的要求是否已快取这些信息,或是在因特网上寻找要传送的信息,然后第一次快取它。
ISA Server 2006 Enterprise Edition 中的 CARP 算法使用主机名来确定处理要求的数组成员。CARP 会将特定主机 (如 www.fabrikam.com) 的所有要求指派给特定的数组成员。这样可确保要求与响应是交由同一个数组成员处理,以维持会话的上下关联性。
CARP 具备许多强大的优点:
• | 由于 CARP 会判定最佳的要求解析路径,因此 Proxy 服务器之间不需要传统因特网快取通讯协议使用的查询讯息。如此可避免严重的查询阻塞。 |
• | CARP 会消除重复的内容。透过因特网快取通讯协议网络,五个 Proxy 服务器的数组会针对最常要求的 URL 迅速发展成多个重复快取。CARP 的哈希型路由可让所有数组成员以单一逻辑快取的型态存在,以避免上述情况发生。结果能更快响应查询以及更有效使用服务器资源。 |
• | CARP 具有正向延展性。基于其哈希型路由和对等搜寻独立性,随着更多 Proxy 服务器加入,CARP 会变得更快速且更有效率。因特网快取通讯协议数组会进行查询来确定快取信息的位置,这种程序缺乏效率,而且会产生额外的网络流量。因特网快取通讯协议数组具有负向的延展性: 加入数组的服务器越多,服务器之间就需要越多查询来确定位置。 |
• | CARP 会自动调整来增加或删除数组中的服务器。哈希型路由是指当服务器联机或新增时,只需要最少的 URL 快取重新指派作业。 |
• | CARP 可确保快取对象平均散布在数组中的所有服务器之间,或根据您为每个服务器设定的加载因子散布。 |
CARP 的运作方式
CARP 在客户端与服务器端双方提供有效的要求路径。
客户端 CARP
客户端 CARP 的运作方式是让客户端选取数组成员来处理每个个别的 URL,并实作如下:
1. | 当使用者在网页浏览器输入 URL 时,浏览器会利用脚本来选取要使用的数组成员。如果客户端和 ISA Server 设定为使用 Web Proxy Automatic Discovery (WPAD) 机制进行自动探索,使用的脚本可能是由 WPAD 传回的脚本,或是从静态位置撷取的自动设定脚本 Array.dll?Get.Routing.Script。 |
2. | 由 ISA Server 产生的脚本会实作 CARP 算法,此算法将运算处理 URL 的数组服务器优先级列表。针对指定的 URL,脚本永远会传回相同的服务器清单,以确保每个 URL 都只在同一个数组成员上快取。 |
3. | 网页浏览器联机到清单中的第一部服务器,并要求服务器撷取页面。如果第一部服务器无响应,便会联系清单中的下一部服务器,并反复进行直到能够撷取对象为止。 |
4. | 由 ISA Server 产生的脚本实作 CARP 算法。脚本包含数组设定与目前状态的相关信息。脚本可确保 URL 空间平均分割,并符合数组成员之间的可设定加载因子。 |
服务器端 CARP
客户端浏览器可依照预先设定、循环或随机的方式来选取要使用的数组成员。当要求抵达数组成员时,服务器会使用要求的 URL 作为自变量来执行 CARP 算法,并决定最适合处理要求的数组成员。此要求接着转送到该服务器。
服务器 CARP 最常用来当做尚未设定或错误设定的客户端的后援。
设定 CARP
启用 CARP 时,数组中所有服务器上的快取磁盘驱动器将被视为单一的逻辑快取磁盘驱动器。如此一来,快取对象便能有效散布至成员服务器中。CARP 的设定方式如下:
• | 启用数组层级网络的 CARP,让 CARP 套用至此网络上要求快取的对象。 |
• | 您可以选择设定数组成员的加载因子。不同的数组成员可能具有不同硬件且效能不一,因此这项设定很有用。根据预设,每部服务器的加载因子都设为 100。如果您希望特定服务器快取较多对象,可以设定更高的加载因子。或者,若要将较少对象快取至服务器,则设定较低的加载因子。 |
• | 以 CARP 为基础的要求会在数组内部地址上的各个数组成员间转送。此地址一开始会设为内部网络上的数组成员网络适配器的默认 IP 地址,数组管理员可以修改此地址。CARP 功能需要将包含数组之数组内部地址的网络设定为接听网页 Proxy 要求。 |
• | 您可以针对网站指定 CARP 例外,以便散布至所有数组成员的网站,而不是由特定的数组成员处理。这适用于下列实例: • | 有些网站要求会话持续期间使用相同的 IP 地址。对这些网站,不应启用 CARP。 | • | 您可以针对网站指定 CARP 例外,以便散布至所有数组成员的网站,而不是由特定的数组成员处理。这对于流量过高无法由单一数组成员处理的网站很有用。例如,您可以新增 Microsoft Update 网站到 CARP 例外清单中,以避免单一的数组成员在尖峰作业期间超载。 |
|
CARP 和 NLB
ISA Server 利用 CARP 和网络负载平衡 (NLB) 来提供 Proxy 故障转移功能。请考虑以下情况:
• | CARP 提供负载平衡和快取散布,但未提供真正的故障转移解决方案。例如,Microsoft Internet Explorer® 预设会快取设定脚本 (Wpad.dat 或 Isa.routing.script) 50 分钟,而新的网页浏览器会话将先检查脚本的快取。如果无法取得脚本中指定的 ISA Server 数组成员,客户端可能仍会尝试使用快取脚本联机到此成员。 |
• | ISA Server 设定脚本是以客户端为主,CARP 实作需视客户端对于特定服务器的状态转译而定。相较于以 NLB 服务器为基础的解决方案,这样比较缺乏解决错误的弹性。 |
• | 一并实作 NLB 和 CARP 可确保自动设定脚本的高度可用性,以提供部分故障转移功能。如果已经设定 NLB,您可以指定 NLB 丛集在自动设定脚本地址中的虚拟 IP 地址,或是指定域名系统 (DNS) 或动态主机配置协议 (DHCP) WPAD 项目中的虚拟 IP 地址。NLB 只会将脚本要求转送到可用的数组成员。脚本中的客户端 CARP 算法接着会确保 URL 要求交由最适合的数组成员处理。为了提供真正的故障转移功能,客户端可联机到数组虚拟 IP 地址,而非使用自动设定脚本中的客户端 CARP 功能。 |
若要结合使用 NLB 功能与路由脚本提供的 CARP 机制,您可以执行下列动作:
• | 将 WPAD 项目设为指向数组的虚拟 IP 地址。NLB 会使用所有数组服务器共享的虚拟 IP 地址。根据 NLB 算法,每个数组成员都能选择传送至虚拟 IP 位置的封包。 |
• | 或者,将设定脚本 URL 设为指向数组的虚拟 IP 地址,或指向解析为数组虚拟 IP 地址的 DNS 记录。请使用下列语法:http://ISA_ArrayName/array.dll?Get.Routing.Script,其中的 ISA_ArrayName 是解析至数组虚拟 IP 地址的 DNS 项目。 |
如需 NLB 的详细信息,请参阅 Microsoft TechNet 网站中的 <ISA Server 2006 中的网络负载平衡概念>。
CARP 和排定的内容下载工作
CARP 会影响排定的内容下载工作,如下所述:
• | 如果本机主机网络已启用 CARP,则排定的内容下载工作只会在一个数组成员上进行。下载内容会根据 CARP 算法散布至数组成员中。 |
• | 如果本机主机网络已停用 CARP,则排定的内容下载工作会在每个数组成员上进行。下载内容会在每个数组成员上复制。 |
• | 在本机主机网络上启用 CARP 时,建议您同时也启用默认内部网络上的 CARP。否则,ISA Server 将无法从快取撷取内部网络客户要求的对象,因为这些对象是在处理排定的内容下载工作时快取的对象。 |