Sun Java System Web Proxy Server 4.0.8 管理指南

设置高速缓存细节

通过设置高速缓存细节,您可以启用高速缓存并控制 Proxy Server 将要缓存哪些类型的协议。高速缓存细节包括以下各项:


注 –

设置大型高速缓存的细节很耗时,并且可能会导致管理界面超时。因此,如果您要创建大型高速缓存,请使用命令行实用程序来设置高速缓存细节。有关高速缓存命令行实用程序的更多信息,请参见使用高速缓存命令行界面


Procedure设置高速缓存细节

  1. 访问 Server Manager,然后单击 "Caching" 选项卡。

  2. 单击 "Set Cache Specifics" 链接。

    将会显示 "Set Cache Specifics" 页面。

  3. 通过选择相应的选项,可以启用或禁用高速缓存。

    默认情况下,将启用高速缓存。

  4. 提供工作目录。

    默认情况下,工作目录位于服务器实例下。此位置可以更改。有关更多信息,请参见创建高速缓存工作目录

  5. 单击分区配置链接。

    将会显示 "Add/Edit Cache Partitions" 页面。您可以添加新的高速缓存分区或编辑现有高速缓存分区。高速缓存大小是指允许高速缓存增长到的最大大小。高速缓存的最大大小为 32 GB。有关更多信息,请参见设置高速缓存大小

  6. 单击高速缓存容量配置链接。

    将会显示 "Set Cache Capacity" 页面。您可以在 "Set Cache Capacity" 页面上设置高速缓存容量。

  7. 选择 "Cache HTTP" 以启用对 HTTP 文档的高速缓存。

    如果决定要让代理服务器对 HTTP 文档进行高速缓存,请确定它应始终对高速缓存中的文档进行最新性检查,还是应按某一时间间隔进行检查。还可以启用或禁用 Proxy Server 向远程服务器报告高速缓存命中次数。有关更多信息,请参见高速缓存 HTTP 文档。可用选项包括:

    • 选择 "Always Check That The Document Is Up To Date" 选项可以确保 HTTP 文档总是最新的。

      • 从 "Check Only If Last Check More Than" 下拉式列表中选择小时数,可以指定代理服务器的刷新间隔。可使用以下任一选项执行最新性检查:

        • Use Last-modified Factor。它是由原始服务器随文档一同发送的上次修改标头。

        • Use Only Explicit Expiration Information。代理服务器使用到期标头来确定高速缓存条目是新条目还是过期条目。

        选择 "Never Report Accesses To Remote Server" 选项可防止代理服务器向远程服务器报告访问次数。

      • 选择 "Report Cache Hits To Remote Server" 选项可跟踪文档的访问次数并将其报告回给远程服务器。

  8. 可以设置高速缓存的 FTP 文档的刷新间隔。选中 "Yes; Reload If Older Than" 复选框,并从下拉式列表中选择相应的值来设置时间间隔。有关更多信息,请参见高速缓存 FTP 和 Gopher 文档

  9. 可以设置高速缓存的 Gopher 文档的刷新间隔。选中 "Yes; Reload If Older Than" 复选框,并从下拉式列表中选择相应的值来设置时间间隔。有关更多信息,请参见高速缓存 FTP 和 Gopher 文档

  10. 单击 "OK"。

  11. 单击 "Restart required"。将会显示 "Apply Changes" 页面。

  12. 单击 "Restart Proxy Server" 按钮以应用更改。

创建高速缓存工作目录

高速缓存文件位于高速缓存分区下。在 "Set Cache Specifics" 页面中指定的工作目录通常是高速缓存的父目录。所有高速缓存的文件均以有组织的目录结构形式出现在高速缓存目录下。如果更改高速缓存目录名称或将其移动到其他位置,必须为代理服务器提供新位置。

可以将高速缓存目录结构扩展至多个文件系统,这样便可使一个大的高速缓存结构分布在多个较小的磁盘上,而不用将其全部存放在一个大的磁盘中。每个代理服务器均须拥有各自的高速缓存目录结构,也就是说,多个代理服务器不能同时共享高速缓存目录。

设置高速缓存大小

高速缓存大小指示分区大小。高速缓存大小应始终小于高速缓存容量,因为它是高速缓存可以增长到的最大大小。所有分区大小的总和必须小于或者等于高速缓存大小。

可供代理服务器高速缓存使用的磁盘空间量对高速缓存性能具有相当大的影响。如果高速缓存过小,Cache GC 必须更频繁地删除高速缓存的文档以腾出磁盘空间,还必须更频繁地从内容服务器检索文档。这些活动会降低性能。

高速缓存大小较大时效率会更高,因为高速缓存的文档越多,网络通信流量负载就越小,代理服务器提供的响应速度就越快。此外,如果用户不再需要高速缓存的文档,GC 会将它们删除。除非文件系统有限制,否则,高速缓存大小再大也不过分。过剩的空间只不过保持未使用而已。

还可以将高速缓存分割到多个磁盘分区中。

高速缓存 HTTP 文档

HTTP 文档提供了其他协议的文档所不具备的高速缓存特性。不过,通过适当设置和配置高速缓存,可以确保 Proxy Server 有效地高速缓存 HTTP、FTP 和 Gopher 文档。


注 –

Proxy Server 4 不支持对 HTTPS 文档进行高速缓存。


所有 HTTP 文档都有一个描述性标头部分,Proxy Server 使用它来比较和评估代理服务器高速缓存中的文档与远程服务器上的文档。代理服务器对 HTTP 文档执行最新版本检查时,如果高速缓存中文档的版本已过期,代理服务器将向服务器发送一个请求,告知服务器返回文档。上一次请求后文档往往并没有发生变化,因此将不会传送文档。这种检查 HTTP 文档是否为最新的方法节约了带宽并缩短了时延。

为减少与远程服务器间的事务,可以使用 Proxy Server 为 HTTP 文档设置 "Cache Expiration" 设置。"Cache Expiration" 设置为代理服务器提供相关信息,以便评估在向服务器发送请求之前是否需要对 HTTP 文档进行最新性检查。代理服务器根据在标头中找到的 HTTP 文档上次修改日期进行此评估。

对于 HTTP 文档,还可以使用 "Cache Refresh" 设置。此选项指定代理服务器是始终执行最新性检查(这会覆盖失效期设置),还是等待特定时间段后再进行检查。下表显示了同时指定失效期设置和刷新设置时,代理服务器将执行的操作。使用刷新设置可显著缩短等待时间并节约带宽。

表 12–1 对 HTTP 使用 "Cache Expiration" 和 "Cache Refresh" 设置

刷新设置 

失效期设置 

结果 

始终执行最新性检查 

(不适用) 

始终执行最新性检查 

用户指定的时间间隔 

使用文档的“到期”标头 

时间间隔到期时执行最新性检查 

 

使用文档的上次修改标头进行估计 

估计值和到期标头中的较小值* 


注 –

* 对于变化频繁的文档,使用较小值可以防止从高速缓存中获取过时数据。


设置 HTTP 高速缓存刷新间隔

如果您决定要让 Proxy Server 对 HTTP 文档进行高速缓存,请确定它应始终对高速缓存中的文档执行最新性检查,还是应基于 "Cache Refresh" 设置(最新性检查时间间隔)进行检查。例如,对于 HTTP 文档,合理的刷新间隔为四到八小时。刷新间隔越长,代理服务器与远程服务器的连接次数就越少。即使在刷新间隔期间代理服务器不执行最新性检查,用户也可以通过在客户机中单击 "Reload" 按钮来强制刷新。此操作使代理服务器强制对远程服务器执行最新性检查。

可以在 "Set Cache Specifics" 页面或 "Set Caching Configuration" 页面中为 HTTP 文档设置刷新间隔。通过 "Set Cache Specifics" 页面可以配置全局高速缓存过程,而通过 "Set Caching Configuration" 页面可以控制特定 URL 和资源的高速缓存过程。

设置 HTTP 高速缓存失效期策略

还可以将服务器设置为只使用上次修改因子或显式失效期信息来检查高速缓存的文档是否是最新的。

显式失效期信息是某些 HTTP 文档中的标头,用来指定文件过期的日期和时间。使用显式到期标头的 HTTP 文档并不很多,因此应根据上次修改标头进行估计。

如果决定根据上次修改标头对 HTTP 文档进行高速缓存,需要选择一个小数用于失效期估计。该小数(称为 LM 因子)将与上次修改时间和上次对文档执行最新性检查时间之间的间隔相乘,然后将生成的数值与上次执行最新性检查到现在为止的时间进行比较。如果此数值小于这段时间间隔,则表明文档尚未过期。小数越小,将会使代理服务器更为频繁地检查文档。

例如,假设有一个文档,其上次更改时间是十天以前。如果将上次修改因子设置为 0.1,代理服务器将把该因子理解为文档可能会在一天 (10 * 0.1 = 1) 内保持不变。在这种情况下,如果不到一天前对文档进行了检查,代理服务器将返回高速缓存中的文档。

仍使用本示例,如果将 HTTP 文档的高速缓存刷新设置的值设置为不足一天,代理服务器每天将进行不止一次的最新性检查。代理服务器将始终使用要求更频繁地执行更新的那个值(高速缓存刷新或高速缓存失效期)。

可以在 "Set Cache Specifics" 页面或 "Set Caching Configuration" 页面中设置 HTTP 文档的失效期设置。通过 "Set Cache Specifics" 页面可以配置全局高速缓存过程,而通过 "Set Caching Configuration" 页面可以控制特定 URL 和资源的高速缓存过程。

向远程服务器报告 HTTP 访问情况

Sun Java System Web Proxy Server 对文档进行高速缓存后,再次刷新文档前文档可能已被访问许多次。对于远程服务器而言,向代理服务器发送将要由其进行高速缓存的一个副本只代表一次访问(或称“命中”)。Proxy Server 可以对最新性检查间隔期间访问代理服务器高速缓存中给定文档的次数进行计数,然后在下次刷新文档时通过另一个 HTTP 请求标头 (Cache-Info) 将该命中计数回传给远程服务器。这样一来,如果将远程服务器配置为可以识别该类型标头,就可以收到更准确的文档访问次数报告。

高速缓存 FTP 和 Gopher 文档

FTP 和 Gopher 不包含用于检查文档最新性的方法。因此,优化 FTP 和 Gopher 文档高速缓存的唯一方法是设置高速缓存刷新间隔。高速缓存刷新间隔是指 Proxy Server 从远程服务器检索文档最新版本前等待的时间长度。如果不设置高速缓存刷新间隔,即使高速缓存中的文档版本是最新的,代理服务器也将检索这些文档。

如果要设置 FTP 和 Gopher 高速缓存刷新间隔,请选择一个自认为对代理服务器获取的文档安全的时间间隔。例如,如果存储很少发生变化的信息,请使用较大的值(若干天)。如果数据不断变化,您会希望至少每隔几小时就检索一次文件。刷新期间存在着将过期文件发送给客户机的风险。如果该时间间隔足够短(例如,几个小时),则会在显著提高响应速度的同时,也会消除大部分此类风险。

可以在 "Set Cache Specifics" 页面或 "Set Caching Configuration" 页面中设置 FTP 和 Gopher 文档的高速缓存刷新间隔。通过 "Set Cache Specifics" 页面可以配置全局高速缓存过程,而通过 "Set Caching Configuration" 页面可以控制特定 URL 和资源的高速缓存过程。有关使用 "Set Cache Specifics" 页面的更多信息,请参见设置高速缓存细节。有关使用 "Set Caching Configuration" 页面的更多信息,请参见配置高速缓存


注 –

如果 FTP 和 Gopher 文档差异很大(有些经常发生变化,有些则很少发生变化),请使用 "Set Caching Configuration" 页面为每种文档创建单独的模板(例如,创建包含资源 ftp://.*.gif 的模板),然后设置适合该资源的刷新间隔。