Sun Java System Web Proxy Server 4.0.8 管理指南

通过代理服务器阵列进行路由选择

对于通过代理服务器阵列的每个请求,散列函数将根据请求的 URL、代理服务器的名称及代理服务器的负载因子为阵列中的每个代理服务器指定一个分数,然后将请求路由到分数最高的代理服务器。

因为 URL 请求可能来自客户机和代理服务器,所以通过代理服务器阵列进行的路由选择有两种类型:客户机到代理服务器路由选择和代理服务器到代理服务器路由选择。

在客户机到代理服务器路由选择中,客户机使用代理自动配置 (Proxy Auto Configuration, PAC) 机制确定要通过哪个代理服务器。不过,客户机不是使用标准的 PAC 文件,而是使用一种特殊的 PAC 文件来计算散列算法,以便为请求的 URL 确定合适的路由。图 12–4 显示了客户机到代理服务器的路由选择。在此图中,代理服务器阵列的每个成员均加载并轮询主代理服务器,以确定是否有对 PAT 文件的更新。客户机一旦下载了 PAC 文件,则只有在配置发生变化时才需要再次下载该文件。客户机通常在重新启动时下载 PAC 文件。

代理服务器可以根据您使用管理界面确定的代理服务器阵列成员资格表 (Proxy Array Membership Table, PAT) 规范自动生成特殊 PAC 文件。

图 12–4 客户机到代理服务器路由选择

该图显示了客户机到代理服务器路由选择。

在代理服务器到代理服务器路由选择中,代理服务器使用 PAT(Proxy Array Table,代理服务器阵列表)文件而不是客户机使用的 PAC 文件来计算散列算法。PAT 文件是一种 ASCII 文件,它包含有关代理服务器阵列的信息,如代理服务器的机器名称、IP 地址、端口、负载因子、高速缓存大小等。要在服务器上计算散列算法,使用 PAT 文件比使用 PAC 文件(该文件是一种 JavaScript 文件,必须在运行时对其进行解释)要高效得多。不过,大多数客户机无法识别 PAT 文件格式,因此必须使用 PAC 文件。图 12–5 显示了代理服务器到代理服务器路由选择。

PAT 文件是在代理服务器阵列中的主代理服务器上创建的。代理服务器管理员必须确定将哪一个代理服务器作为主代理服务器。管理员可以通过此主代理服务器更改 PAT 文件,之后代理服务器阵列的所有其他成员可以手动或自动方式轮询主代理服务器来获悉这些更改。您可以将每个成员都配置为根据这些更改自动生成 PAC 文件。

也可以将代理服务器阵列链接在一起,进行分层结构路由选择。如果代理服务器通过上游代理服务器阵列路由传入的请求,则该上游代理服务器阵列被称为父阵列。也就是说,如果客户机从代理服务器 X 请求文档,而代理服务器 X 没有该文档,它将把请求发送给代理服务器阵列 Y,而不是直接将请求发送到远程服务器。因此,代理服务器阵列 Y 是父阵列。

图 12–5 中,代理服务器阵列 1 是代理服务器阵列 2 的父阵列。代理服务器阵列 2 的成员会加载并进行轮询,以确定是否有对父阵列 PAT 文件的更新。通常,该成员轮询父阵列中的主代理服务器。将使用下载的 PAT 文件计算请求的 URL 的散列算法,之后代理服务器阵列 2 的成员就可以从代理服务器阵列 1 中分数最高的代理服务器中检索请求的 URL。在此图中,对于客户机请求的 URL,代理服务器 B 的分数最高。

图 12–5 代理服务器到代理服务器路由选择

该图显示了代理服务器到代理服务器路由选择。

设置代理服务器阵列的常规步骤如下所示。

从主代理服务器中,执行以下步骤:

  1. 创建代理服务器阵列。

    有关创建成员列表的更多信息,请参见创建代理服务器阵列成员列表

  2. 根据 PAT 文件生成 PAC 文件。

    如果使用客户机到代理服务器路由选择,只需生成 PAC 文件。有关更多信息,请参见根据 PAT 文件生成 PAC 文件

  3. 配置阵列的主成员。有关更多信息,请参见配置代理服务器阵列成员

  4. 启用通过代理服务器阵列进行路由选择。有关更多信息,请参见启用通过代理服务器阵列进行路由选择

  5. 创建 PAT 映射以将 URL /pat 映射到 PAT 文件。

  6. 启用代理服务器阵列。

    有关更多信息,请参见启用或禁用代理服务器阵列

从每个非主代理服务器中,执行以下步骤:

  1. 配置阵列的非主成员。

    有关更多信息,请参见配置代理服务器阵列成员

  2. 启用通过代理服务器阵列进行路由选择。

    有关更多信息,请参见启用通过代理服务器阵列进行路由选择

  3. 启用代理服务器阵列。

    有关更多信息,请参见启用或禁用代理服务器阵列


    注 –

    如果代理服务器阵列要通过父阵列进行路由,则还需要启用父阵列并将每个成员配置为通过父阵列进行路由以获得所需的 URL。有关更多信息,请参见通过父阵列进行路由选择