可以将高速缓存代理配置为逆向高速缓存代理服务器(缺省配置)或正向高速缓存代理服务器。由内容主机使用时,可以将高速缓存代理配置为位于因特网与企业的内容主机之间的逆向高速缓存代理服务器。由因特网访问提供程序使用时,可以将高速缓存代理配置为位于客户机与因特网之间的正向高速缓存代理服务器。
使用逆向代理配置时,高速缓存代理机器位于因特网与企业的内容主机之间。充当代理时,代理服务器截取从因特网到达的用户请求、将它们转发到合适的内容主机、将返回的数据进行高速缓存并通过因特网将这些数据传递给用户。高速缓存功能使高速缓存代理能够直接从高速缓存来满足对相同内容的后续请求,这比从内容主机再次检索该内容快得多。可以根据信息将何时到期、高速缓存应该有多大以及应该何时更新信息来对信息进行高速缓存。高速缓存命中的下载时间越短,那么意味着对于客户的服务质量越好。图 1 描绘了这个基本的高速缓存代理功能。
在此配置中,代理服务器 (4) 截取其 URL 包含内容主机 (6) 的主机名的请求。当客户机 (1) 请求文件 X 时,此请求将经过因特网 (2) 并通过企业的内部网关 (3) 进入企业的内部网络。代理服务器截取此请求,生成一个以其 IP 地址作为起源地址的新请求,并将该新请求发送到内容主机 (6)。
内容主机将文件 X 返回给代理服务器,而不是直接返回给最终用户。如果该文件可以高速缓存,那么高速缓存代理在将它传递给最终用户之前会在其高速缓存 (5) 中存储一个副本。可以高速缓存的内容的一个突出示例是静态 Web 页面;然而,高速缓存代理还能够将 WebSphere® Application Server 动态生成的内容进行高速缓存并提供该内容。
给最终用户提供直接因特网访问的效率非常低。每个从 Web 服务器访存给定文件的用户都会在网络中生成相同大小的流量,并会以访存该文件的第一个用户的身份通过因特网网关,即使该文件未更改时也是如此。此解决方案用于在网关附近安装正向高速缓存代理。
使用正向代理配置时,高速缓存代理机器位于客户机与因特网之间。高速缓存代理将客户机的请求转发到因特网上的内容主机、将检索到的数据进行高速缓存并将它们传递给客户机。
图 2 描绘了正向高速缓存代理配置。客户机的浏览器程序(位于标记为 1 的机器上)已配置为将请求定向至正向高速缓存代理 (2),已配置该代理来截取请求。当最终用户请求内容主机 (6) 上存储的文件 X 时,正向高速缓存代理截取此请求,生成一个以其 IP 地址作为起源地址的新请求,并通过企业的路由器 (4) 在因特网 (5) 上发送出该新请求。
源服务器以此方式将文件 X 返回给正向高速缓存代理,而不是直接返回给最终用户。如果启用了正向高速缓存代理的高速缓存功能,那么高速缓存代理通过检查文件 X 的返回头中的设置(如截止日期和该文件是否是动态生成的指示)来确定该文件是否可以高速缓存。如果该文件可以高速缓存,那么高速缓存代理在将它传递给最终用户之前会在其高速缓存 (3) 中存储一个副本。缺省情况下,已启用高速缓存并且正向高速缓存代理使用内存高速缓存;然而,您可以配置其他类型的高速缓存。
对于第一个对文件 X 的请求,正向高速缓存代理并不会将访问因特网的效率提高很多。确实,第一个访问文件 X 的用户的响应时间可能比不使用正向高速缓存代理时更长,这是因为在接收到此请求时,正向高速缓存代理处理原始请求包并检查文件 X 的头以获取可高速缓存性信息需要一些时间。当其他用户以后请求文件 X 时,使用正向高速缓存代理会带来益处。正向高速缓存代理检查文件 X 的高速缓存的副本是否仍然有效(是否未到期),如果该副本仍然有效,那么它直接从高速缓存中提供文件 X,而不是通过因特网将此请求传递到内容主机。
即使正向高速缓存代理发现所请求的文件已到期时,它也不必从内容主机重新访存该文件。相反,它会将一条特殊的状态检查消息发送到内容主机。如果内容主机指示该文件尚未更改,那么正向高速缓存代理仍然可以将已高速缓存的版本传递给发出请求的用户。
因为正向高速缓存代理将代表浏览器执行操作并通过因特网将其请求转发到内容主机,所以以此方式配置正向高速缓存代理被称为正向代理。具有高速缓存功能的正向代理的益处分为两个方面:
高速缓存代理可以代理多个网络传输协议,包括 HTTP(超文本传输协议)、FTP(文件传输协议)和 Gopher。
正向高速缓存代理的一种变体是透明高速缓存代理。在此角色中,高速缓存代理执行与基本正向高速缓存代理相同的功能,但它执行这些功能时,客户机不必知道它是否存在。透明高速缓存代理配置仅在 Linux 系统上受支持。
在正向高速缓存代理描述的配置中,每个客户机浏览器都分别配置为将请求定向至某个正向高速缓存代理。维护这样的配置可能不是很方便,对于客户机的数目较大时更是如此。高速缓存代理支持多个可以简化管理的替代方案。一种可能性是像图 3 中所描绘的那样配置高速缓存代理以用作透明代理。与常规正向高速缓存代理一样,透明高速缓存代理安装在网关附近的机器上,但客户机浏览器程序未配置为将请求定向至正向高速缓存代理。客户机不知道代理在配置中是否存在。相反,路由器已配置为截取客户机请求并将这些请求定向至透明高速缓存代理。当在标记为 1 的某台机器上工作的客户机请求内容主机 (6) 上存储的文件 X 时,路由器 (2) 将此请求传递到高速缓存代理。高速缓存代理生成一个以其 IP 地址作为起源地址的新请求并通过路由器 (2) 在因特网 (5) 上发送出该新请求。当文件 X 到达时,高速缓存代理在合适的情况下将该文件进行高速缓存(受正向高速缓存代理中所描述的条件的限制)并将其传递到发出请求的客户机。
对于 HTTP 请求,在每个浏览器上维护代理配置信息的另一个可能的替代方案是使用多个浏览器程序(包括 Netscape Navigator V2.0 及更高版本和 Microsoft Internet Explorer V4.0 及更高版本)上提供的自动代理配置功能部件。在这种情况下,您应该创建一个或多个代理自动配置 (PAC) 文件并将浏览器配置为引用其中一个文件,而不是引用本地代理配置信息。浏览器会自动察觉到对 PAC 的更改并相应地调整其代理用法。这不仅可以消除在每个浏览器上维护不同配置信息的需要,而且还使得在代理服务器不可用时容易重新路由请求。
第三个替代方案是使用某些浏览器程序(如 Internet Explorer V5.0 及更高版本)上提供的 Web 代理自动发现 (WPAD) 机制。在浏览器上启用此功能时,此功能会自动在其网络中找到符合 WPAD 的代理服务器并将 Web 请求定向至该代理服务器。在这种情况下,您不需要维护中央代理配置文件。高速缓存代理符合 WPAD。