![]() | |
Sun Java System Web Proxy Server 4.0.1 管理指南 |
第 11 章
代理和路由选择 URL本章介绍代理服务器如何处理请求。还介绍了如何为特定资源启用代理,以及如何配置代理服务器以将 URL 路由到不同的 URL 或服务器。
本章包括以下各节:
为资源启用/禁用代理可以对资源打开或关闭代理功能。资源可以是单个 URL、带有某些通用设置的成组 URL 或整个协议。您可以控制是否对整个服务器、各种资源或模板文件中指定的资源启用代理。这意味着可以通过禁用某资源的代理拒绝对一个或多个 URL 的访问。可以全局应用此方法,以拒绝或允许对资源的所有访问。(也可以通过使用 URL 过滤器允许或拒绝对资源的访问。) 有关 URL 过滤器的更多信息,参见过滤 URL。
为资源启用代理
- 访问 Server Manager 并单击 "Routing" 选项卡。
- 单击 "Enable/Disable Proxying" 链接。将显示 "Enable/Disable Proxying" 页面。
- 从下拉式列表中选择资源,或单击 "Regular Expression" 按钮输入正则表达式,然后单击 "OK"。
- 可以为指定的资源选择一个默认设置。可以选择不代理该资源(禁用代理),或者启用该资源的代理。可用选项如下:
- Use Default Setting Derived From A More General Resource。此资源将使用更通用的资源的设置(包括此设置)。
- Do Not Proxy This Resource。不能通过代理服务器访问此资源。
- Enable Proxying Of This Resource。代理服务器允许客户机访问此资源(前提是客户机通过其他安全和验证检查)。如果为某资源启用代理,则会启用所有方法。系统会为该资源启用所有读取方法(包括 SSL 隧道的 GET、HEAD、INDEX、POST 和 CONNECT 方法)和写入方法(包括 PUT、MKDIR、RMDIR、MOVE 和 DELETE 方法)。除非有其他安全检查,否则客户机将拥有所有读写访问权限。
- 单击 "OK"。
- 单击 "Restart Required"。将显示 "Apply Changes" 页面。
- 单击 "Restart Proxy Server" 按钮以应用更改。
通过其他代理服务器路由选择"Set Routing Preferences" 页面用于对代理服务器进行配置,使之使用派生默认配置或直接连接,或者通过代理服务器阵列、ICP 邻域、其他代理服务器或 SOCKS 服务器路由某些资源。
为资源配置路由选择
为资源配置路由选择
- 访问 Server Manager 并单击 "Routing" 选项卡。
- 单击 "Set Routing Preferences" 链接。将显示 "Set Routing Preferences" 页面。
- 从下拉式列表中选择资源,或者单击 "Regular Expression" 按钮输入正则表达式,然后单击 "OK"。
- 为正在配置的资源选择与要使用的路由选择类型对应的单选按钮。可以选择下列选项之一:
- Derived Default Configuration。代理服务器使用更通用的模板(即包含较短且匹配的正则表达式的模板)确定使用远程服务器还是使用另一代理服务器。例如,如果代理服务器将所有 http://.* 请求路由到另一代理服务器,将所有 http://www.* 请求路由到远程服务器,则可以为 http://www.example.* 请求创建派生默认配置路由选择,然后该请求会因 http://www.* 模板的设置而直接转到远程服务器。
- Direct Connections。请求将始终直接转到远程服务器,而不经过代理服务器。
- Route Through A SOCKS Server。对指定资源的请求将通过 SOCKS 服务器路由。如果选择此选项,则需指定代理服务器用来路由的 SOCKS 服务器的名称(或 IP 地址)和端口号。
- Route Through。允许指定是否通过代理服务器阵列、ICP 邻域、父阵列和/或代理服务器进行路由。如果在此处选择多种路由选择方法,代理服务器将遵循表单上显示的层级进行路由(即,代理服务器阵列、重定向、ICP、父阵列、另一代理服务器)。有关通过代理服务器进行路由选择的更多信息,参见链接 Proxy Server。
有关通过 SOCKS 服务器进行路由选择的信息,参见通过 SOCKS 服务器路由选择。有关通过代理服务器阵列、父阵列或 ICP 邻域进行路由选择的信息,参见高速缓存。
链接 Proxy Server
可以使代理服务器通过访问另一代理服务器获得某些资源,而不是访问远程服务器。这意味着可以将多个代理服务器链在一起。链接是在防火墙后组织多个代理服务器的有效方式。利用链接还可以建立分层结构的高速缓存。
通过其他代理服务器路由
- 访问 Server Manager 并单击 "Routing" 选项卡。
- 单击 "Set Routing Preferences" 链接。将显示 "Set Routing Preferences" 页面。
- 从下拉式列表中选择资源,或单击 "Regular Expression" 按钮输入正则表达式,然后单击 "OK"。
- 在页面的 "Routing Through Another Proxy" 部分选择 "Route Through" 选项。
- 选中 "Another Proxy" 复选框。
- 在 "Another Proxy" 字段中,输入路由要经过的代理服务器的名称或 IP 地址。
- 单击 "OK"。
- 单击 "Restart Required"。将显示 "Apply Changes" 页面。
- 单击 "Restart Proxy Server" 按钮以应用更改。
通过 SOCKS 服务器路由选择
如果网络上已有远程 SOCKS 服务器在运行,可以将代理服务器配置为与其连接以获得特定资源。
通过 SOCKS 服务器路由
- 访问 Server Manager 并单击 "Routing" 选项卡。
- 单击 "Set Routing Preferences" 链接。将显示 "Set Routing Preferences" 页面。
- 从下拉式列表中选择资源,或单击 "Regular Expression" 按钮输入正则表达式,然后单击 "OK"。
- 在页面的 "Routing Through Another Proxy" 部分选择 "Route Through" 选项。
- 选择 "Route Through SOCKS Server" 选项。
- 指定代理服务器用来进行路由的 SOCKS 服务器的名称(或 IP 地址)和端口号。
- 单击 "OK"。
- 单击 "Restart Required"。将显示 "Apply Changes" 页面。
- 单击 "Restart Proxy Server" 按钮以应用更改。
将客户机 IP 地址转发到服务器"Forward Client Credentials" 页面用于对代理服务器进行配置,使之将客户机凭证发送到远程服务器。
配置代理服务器发送客户机 IP 地址
- 访问 Server Manager 并单击 "Routing" 选项卡。
- 单击 "Forward Client Credentials" 链接。将显示 "Forward Client Credentials" 页面。
- 从下拉式列表中选择资源,或单击 "Regular Expression" 按钮输入正则表达式,然后单击 "OK"。
- 根据需要更改下列选项:
- Client Proxy Authentication Forwarding。选择以下选项之一,将代理服务器配置为发送客户机的验证详细信息:
- Client Cipher Forwarding。选择以下选项之一配置代理服务器,使之将客户机的 SSL/TLS 加密算法套件名称发送到远程服务器:
- Client Keysize Forwarding。选择以下选项之一配置代理服务器,使之将客户机的 SSL/TLS 密钥大小发送到远程服务器:
- Client Secret Keysize Forwarding。选择以下选项之一配置代理服务器,使之将客户机的 SSL/TLS 密钥大小发送到远程服务器:
- Client SSL Session ID Forwarding。选择以下选项之一配置代理服务器,使之将客户机的 SSL/TLS 会话 ID 发送到远程服务器:
- Client Issuer DN Forwarding。选择以下选项之一配置代理服务器,使之将客户机的 SSL/TLS 证书颁发者的标识名发送到远程服务器:
- Client User DN Forwarding。选择以下选项之一配置代理服务器,使之将客户机的 SSL/TLS 证书主体的标识名发送到远程服务器:
- Client SSL/TLS Certificate Forwarding。选择以下选项之一配置代理服务器,使之将客户机的 SSL/TLS 证书发送到远程服务器:
- Client Cache Information Forwarding。选择以下选项之一配置代理服务器,使之将有关本地高速缓存命中次数的信息发送到远程服务器:
- Set Basic Authentication Credentials。选择以下选项之一配置代理服务器,以发送 HTTP 请求:
- 单击 "OK"。
- 单击 "Restart Required"。将显示 "Apply Changes" 页面。
- 单击 "Restart Proxy Server" 按钮以应用更改。
允许客户机检查 IP 地址为维护网络安全,客户机可能具有将访问权限仅限于某些 IP 地址的功能。为了使客户机可以使用此功能,代理服务器提供了对检查 Java IP 地址的支持。这一支持允许客户机在代理服务器中查询用于检索资源的 IP 地址。启用此功能后,客户机可以请求代理服务器发送源服务器的 IP 地址,代理服务器会将该 IP 地址附在标头中。客户机知道源服务器的 IP 地址后,即可立即以显式方式指定以后连接使用相同的 IP 地址。
检查 Java IP 地址
客户机自动配置如果代理服务器支持许多客户机,则可使用客户机自动配置文件来配置所有浏览器客户机。自动配置文件包含一个 JavaScript 函数,该函数用于确定访问各种 URL 时 Navigator 所使用的代理服务器(如果有)。有关此功能的更多信息,参见使用客户机自动配置文件。
设置网络连通性模式可将代理服务器计算机连接到网络或者从网络断开连接。此功能方便了在可用于演示的便携计算机上安装代理服务器的过程。
代理服务器从网络断开连接时,文档直接从高速缓存返回——代理服务器无法进行最新性检查,因此文档检索速度相当快(文档可能不是最新的,有关高速缓存的更多信息,参见高速缓存)。
另外,如果未连接到网络,则连接始终不会挂起,这是因为代理服务器知道没有网络,也就不会尝试连接远程服务器。在网络断开但代理服务器计算机仍在运行时可以使用此无网络设置。
Proxy Server 提供四种网络连通性模式:
- 默认模式派生自最通用的匹配对象的配置。
- 标准模式是代理服务器的标准操作模式。如果文档不在高速缓存中,则代理服务器从内容服务器检索文档。如果文档在高速缓存中,则会对照内容服务器中的文档对其进行检查,以确定是否是最新文档。如果高速缓存的文件已更改,则使用当前副本将其替换。
- 快速演示模式用于在网络可用时提供流畅的演示。如果文档在高速缓存中,则不联络内容服务器,也不检查文档是否已更改。此模式消除了因等待内容服务器响应而产生的任何等待时间。如果文档不在高速缓存中,则从内容服务器检索并存入高速缓存。快速演示模式比标准模式等待时间少,但由于该模式在保存文档副本后不再进行最新检查,所以有时会返回过期数据。
- 无网络模式专为便携式计算机未连接网络的情况而设计。如果文档在高速缓存中,则代理服务器返回文档。如果文档不在高速缓存中,则代理服务器返回错误。代理服务器始终不尝试联络内容服务器,这样可以防止代理服务器因尝试使用不存在的连接而挂起和超时。
更改代理服务器的运行模式
更改默认 FTP 传送模式FTP 提供两种不同的方法在 FTP 服务器与客户机(代理服务器充当客户机)之间建立数据连接。这两种模式称为 PASV 和 PORT 模式 FTP。
某些 FTP 站点运行防火墙,使 PASV 模式对代理服务器不起作用。因此,可以将代理服务器配置为使用 PORT 模式 FTP。可以为整个服务器启用 PORT 模式,也可以仅为特定 FTP 服务器启用此模式。
如果代理服务器受防火墙保护,使 PORT 模式 FTP 不起作用,则不能启用 PORT 模式。如果为资源选择默认模式,则代理服务器使用源自更通用资源的模式。如果未指定,则使用 PASV 模式。
设置 FTP 模式
指定 SOCKS 名称服务器 IP 地址如果将代理服务器配置为通过 SOCKS 服务器建立外发连接,可能需要以显示方式指定 SOCKS 名称服务器的 IP 地址。
如果使用 DNS 服务器(而非防火墙内的内部 DNS 服务)解析外部主机名,则应指定名称服务器 IP 地址。
指定 SOCKS 名称服务器 IP 地址
配置 HTTP 请求负载平衡"Configure HTTP Request Load Balancing" 页面用于在指定的源服务器中分配负载。
配置 HTTP 请求负载平衡
- 访问 Server Manager 并单击 "Routing" 选项卡。
- 单击 "Configure HTTP Request Load Balancing" 链接。将显示 "Configure HTTP Request Load Balancing" 页面。
- 从下拉式列表中选择资源,或单击 "Regular Expression" 按钮输入正则表达式,然后单击 "OK"。
- 在 "Server" 字段中指定源服务器的 URL。如果给定多个服务器参数,则 Proxy Server 将在指定的源服务器中分配负载。
- 在 "Sticky Cookie" 字段中指定 cookie 的名称,当其出现在响应中时,会导致随后的请求保留在此源服务器。默认值为 JSESSIONID。
- 在 "Sticky Parameter" 字段中指定用于检查路由信息的 URI 参数的名称。如果 URI 参数出现在请求 URI 中,并且其值包含冒号,后接路由 ID,则请求将“保留”在由此路由 ID 标识的源服务器中。默认值为 jsessionid。
- 在 "Route Header" 字段中指定用于将路由 ID 发送至源服务器的 HTTP 请求标头的名称。默认值为 proxy-jroute。
- 在 "Route Cookie" 字段中指定 Proxy Server 在响应中遇到 "Sticky Cookie" 时生成的 cookie 的名称。默认值为 JROUTE。
- 单击适当的 "Rewrite Host" 选项,以指示是否重写 Host HTTP 请求标头,以便与服务器参数指定的主机匹配。
- 单击适当的 "Rewrite Location" 选项,以指示是否应重写与服务器参数匹配的 Location HTTP 响应标头。
- 单击适当的 "Rewrite Content Location" 选项,以指示是否应重写与服务器参数匹配的 Content-location HTTP 响应标头。
- 选中相应复选框,指示是否应重写与服务器参数匹配的 headername HTTP 响应标头,其中 headername 是用户定义的标头名称。在 "Headername" 字段中指定标头名称。
- 单击 "OK"。
- 单击 "Restart Required"。将显示 "Apply Changes" 页面。
- 单击 "Restart Proxy Server" 按钮以应用更改。
管理 URL 和 URL 映射Server Manager 允许将 URL 映射到其他服务器,有时称为镜像服务器。客户机使用镜像 URL 访问代理服务器时,代理服务器从镜像服务器检索请求的文档,而不从 URL 中指定的服务器检索。客户机不会知道请求将转到其他服务器。也可以重定向 URL,在这种情况下,代理服务器只向客户机返回重定向的 URL(而不返回文档),以便客户机随后可以请求新文档。还可以用映射将 URL 映射到文件,在 PAC 和 PAT 映射中即如此。
本节包括以下主题:
创建 URL 映射
要映射 URL,请指定 URL 前缀以及映射目标位置。以下各节介绍各种类型的 URL 映射。可以创建四种类型的 URL 映射:
- 正则映射将一个 URL 前缀映射到另一个 URL 前缀。例如,可对代理服务器进行配置,使其每次收到开始 http://www.example.com 的请求时,即转到特定 URL。
- 反向映射将一个已重定向的 URL 前缀映射到另一个 URL 前缀。当内部服务器向代理服务器发送已重定向的响应而不发送文档时,反向代理服务器即使用此类映射。有关更多信息,参见使用反向代理服务器。
- 正则表达式映射将与表达式匹配的所有 URL 映射到一个 URL。例如,可以将与 .*job.* 匹配的所有 URL 映射到一个特定 URL(此 URL 可能解释代理服务器为什么不允许用户转到特定 URL)。
- 客户机自动配置将 URL 映射到存储在代理服务器上的特定 .pac 文件。有关自动配置文件的更多信息,参见使用客户机自动配置文件。
- 代理服务器阵列表 (PAT) 将 URL 映射到存储在代理服务器上的特定 .pat 文件。只能在主代理服务器中创建此类映射。有关 PAT 文件和代理服务器阵列的更多信息,参见通过代理服务器阵列进行路由选择。
访问 URL 的客户机被发送到相同或不同服务器上的其他位置。资源已移动时,或者需要在未使用结尾斜杠访问目录时保持相对链接的完整性,此功能会很有用。
例如,假定有一个名为 hi.load.com 的高负载 Web 服务器,您想要将它镜像到另一个名为 mirror.load.com 的服务器。对于转到 hi.load.com 计算机的 URL,可以将代理服务器配置为使用 mirror.load.com 计算机。
源 URL 前缀必须未进行转义,但在目标(镜像)URL 中,只需要转义在 HTTP 请求中非法的字符。
创建 URL 映射
- 访问 Server Manager,然后单击 "URLs" 选项卡。
- 单击 "Create Mapping" 链接。将显示 "Create Mapping" 页面。
- 选择要创建的映射类型。
- Regular Mappings。将一个 URL 前缀映射到另一个 URL 前缀。例如,可对代理服务器进行配置,使其每次收到开始 http://www.example.com 的请求时,即转到特定 URL。如果选择此选项,该页面的下部将显示以下选项:
- Reverse Mappings。将一个已重定向的 URL 前缀映射到另一个 URL 前缀。当内部服务器向代理服务器发送已重定向的响应而不发送文档时,反向代理服务器即使用此类映射。有关反向代理服务器的更多信息,参见使用反向代理服务器。如果选择此选项,该页面的下部将显示以下选项:
- Regular Expression。将与此表达式匹配的所有 URL 映射到一个 URL。有关正则表达式的更多信息,管理模板和资源。
- Client Autoconfiguration。将 URL 映射到存储在 Proxy Server 上的特定 .pac 文件。有关自动配置文件的更多信息,使用客户机自动配置文件。
- Proxy Array Table (PAT)。将 URL 映射到存储在 Proxy Server 上的特定 .pat 文件。只能在主代理服务器中创建此类映射。有关 PAT 文件和代理服务器阵列的更多信息,参见“通过代理服务器阵列进行路由选择”,此主题位于高速缓存。
- 键入映射源前缀。对于正则映射和反向映射,此前缀应该是要替代的 URL。
对于正则表达式映射,此 URL 前缀应该是所有 URL 要与之匹配的正则表达式。如果还为映射选择了模板,此正则表达式仅对模板的正则表达式中的 URL 起作用。
对于客户机自动配置映射和代理服务器阵列表映射,URL 前缀应是客户机访问的完整 URL。
- 键入映射目标。
对于除客户机自动配置和代理服务器阵列表以外的所有映射类型,此项应是要映射到的完整 URL。对于客户机自动配置映射,此值应是到位于代理服务器硬盘上的 .pac 文件的绝对路径。对于代理服务器阵列表映射,此值应是到位于主代理服务器本地磁盘上的 .pat 文件的绝对路径。
- 从下拉式列表中选择模板名称,如果不想应用模板则将此值保留为 "NONE"。
- 单击 "OK" 创建映射。
- 单击 "Restart Required"。将显示 "Apply Changes" 页面。
- 单击 "Restart Proxy Server" 按钮以应用更改。
查看、编辑或删除现有 URL 映射
更改现有映射
重定向 URL
可以配置代理服务器,使之向客户机返回重定向的 URL,而不是获取并返回文档。重定向后,客户机会知道原来请求的 URL 已被重新定向到其他 URL。通常,客户机会立即请求已重定向的 URL。Netscape Navigator 会自动请求已重定向的 URL——用户不必再次明确请求该文档。
当您想拒绝对某个区域的访问时,URL 重定向很有用,因为可将用户重定向到说明访问为何被拒绝的 URL。
重定向一个或多个 URL
- 访问 Server Manager,然后单击 "URLs" 选项卡。
- 单击 "Redirect URLs" 链接。将显示 "Redirect URLs" 页面。
- 输入作为 URL 前缀的源 URL。
- 输入要重定向到的 URL。此 URL 既可以是 URL 前缀,也可以是固定的 URL。
如果选择使用 URL 前缀作为重定向的目标 URL,请选择 "URL prefix" 字段旁的单选按钮,并输入一个 URL 前缀。如果选择使用固定 URL,请选择 "Fixed URL" 字段旁的单选按钮,并输入一个固定 URL。
- 单击 "OK"。
- 单击 "Restart Required"。将显示 "Apply Changes" 页面。
- 单击 "Restart Proxy Server" 按钮以应用更改。