Sun Java System Web Proxy Server 4.0.8 管理指南

设置反向代理

要设置反向代理,需要两个映射:正则映射和反向映射。


注意 – 注意 –

请不要将反向代理与提供自动配置文件的代理一起使用,因为该代理可能会返回错误的结果。


假定您有一个称为 http://http.site.com/ 的 Web 服务器,并且要为其设置反向代理服务器。可以将该反向代理称为 http://proxy.site.com/

Procedure创建正则映射或反向映射

  1. 访问 Server Manager 并单击 "URLs" 选项卡。

  2. 单击 "Create Mapping" 链接。

    此时将显示 "Create Mapping" 页面。

  3. 在显示的页面中,为正则映射提供源前缀和源目标。

    例如,

    源前缀:http://proxy.site.com

    源目标:http://http.site.com/

  4. 单击 "OK"。

    返回该页面并创建反向映射,例如,

    反向映射:

    源前缀:http://http.site.com/

    源目标:http://proxy.site.com/

  5. 要进行更改,请单击 "OK"。

    单击 "OK" 按钮后,代理服务器即会添加一个或多个附加映射。要查看映射,请单击 "View/Edit Mappings" 链接。附加映射将具有以下格式:

    from: /

    to: http://http.site.com/

    这些附加的自动映射针对的是以常规服务器形式连接到反向代理的用户。第一个映射用于捕捉以常规代理形式连接到反向代理的用户。仅当用户不更改管理 GUI 自动提供的 "Map Source Prefix" 文本框的内容时,才会添加 "/" 映射。根据具体设置,通常只有第二个映射是必需的,但是附加映射不会导致代理出现问题。


    注 –

    如果 Web 服务器具有多个 DNS 别名,每个别名都应有一个对应的正则映射。如果 Web 服务器使用自身的多个 DNS 别名生成重定向,则其中每个别名都应有一个对应的反向映射。


    CGI 应用程序仍在原始服务器上运行。代理服务器从不自行运行 CGI 应用程序。但是,如果 CGI 脚本指示结果可以进行高速缓存(通过发出上次修改或到期标头暗示生存时间非零),代理将会高速缓存结果。

    为 Web 服务器制作内容时,请牢记反向代理也将为该内容提供服务,因此,指向 Web 服务器上的文件的所有链接都应为相对链接。请不要在 HTML 文件中引用主机名。所有链接都只能由页面组成:

    /abc/def

    而不能是全限定主机名,例如:

    http://http.site.com/abc/def


    注 –

    您可以为反向代理模式下发生的错误提供自定义错误页面。这些错误页面将替代由代理生成的错误。这样可防止客户机了解到已经配置了代理服务器。


设置安全反向代理

设置安全反向代理之前,应熟悉数字证书、证书授权机构和验证。

设置安全反向代理与设置非安全反向代理几乎相同。唯一的区别在于需要将 HTTPS 指定为要加密文件的协议。

客户机安全连接到代理

此过程说明如何根据所选配置方案设置安全反向代理。为了演示如何设置映射,以下说明假定您有一个称为 http.site.com 的 Web 服务器,并且要设置一个称为 proxy.site.com 的安全反向代理服务器。按所述步骤进行操作时,请使用您的 Web 服务器名称和代理名称替代指示中使用的示例名称。

Procedure设置客户机安全连接到代理映射

  1. 访问 Server Manager 并单击 "URLs" 选项卡。

  2. 单击 "Create Mapping" 链接。

    此时将显示 "Create Mapping" 页面。

  3. 在显示的页面中,采用以下方式设置正则映射和反向映射:

    正则映射:

    源前缀:https://proxy.mysite.com

    源目标:http://http.mysite.com/

    反向映射:

    源前缀:http://http.mysite.com/

    源目标:https://proxy.mysite.com/

  4. 保存并应用所做的更改。

    要查看刚创建的映射,请单击 "View/Edit Mappings" 链接。


    注 –

    此配置仅在代理服务器以安全模式运行时才有效。换言之,必须启用加密并且必须从命令行重新启动代理。要从命令行重新启动代理,请转到代理目录,然后键入 ./start


Procedure设置代理安全连接到内容服务器映射

  1. 访问 Server Manager 并单击 "URLs" 选项卡。

  2. 单击 "Create Mapping" 链接。

    此时将显示 "Create Mapping" 页面。

  3. 在显示的页面中,采用以下方式设置正则映射和反向映射:

    正则映射:

    源前缀:http://proxy.mysite.com

    源目标:https://http.mysite.com/

    反向映射:

    源前缀:https://http.mysite.com/

    源目标:http://proxy.mysite.com/

  4. 保存并应用所做的更改。

    要查看刚创建的映射,请单击称为 "View/Edit Mappings" 的链接。


    注 –

    此配置仅在内容服务器以安全模式运行时才有效。


Procedure设置客户机安全连接到代理和代理安全连接到内容服务器

  1. 访问 Server Manager 并单击 "URLs" 选项卡。

  2. 单击 "Create Mapping" 链接。

    此时将显示 "Create Mapping" 页面。

  3. 在显示的页面中,采用以下方式设置正则映射和反向映射:

    正则映射:

    源前缀:https://proxy.mysite.com

    源目标:https://http.mysite.com/

    反向映射:

    源前缀:https://http.mysite.com/

    源目标:https://proxy.mysite.com/

  4. 保存并应用所做的更改。

    要查看刚创建的映射,请单击称为 "View/Edit Mappings" 的链接。


    注 –

    此配置仅在代理服务器和内容服务器以安全模式运行时有效。换言之,对于代理,必须启用加密并且必须从命令行重新启动代理。要从命令行重新启动代理,请转到代理目录,然后键入 ./restart


在反向代理设置中禁用正向代理功能

如果将某个代理服务器实例配置为反向代理服务器,该代理服务器实例在默认情况下不会停止其正向代理服务器的功能。此类服务器实例会接受并处理反向代理请求和正向代理请求。要禁用正向代理功能,需要执行进一步配置。可设置一个 ACL 配置,用于拒绝 URI 与正向代理格式相匹配的那些请求。为此,可使用 Client 指令:

<Client uri="http://.*">
PathCheck fn="check-acl" acl="http://.*"
<Client>
.
.
.
The "http://.*" ACL can be a deny all ACL as follows:
.
.
acl "http://.*";
deny (all) user="anyone";

反向代理中的虚拟多重主机

利用虚拟多重主机功能,原始服务器(如反向代理服务器)可以响应多个 DNS 别名,就好像其中的每个地址都安装了不同的服务器。例如,假定您有以下 DNS 主机名:

其中每个主机名都可以映射到同一 IP 地址(反向代理的 IP 地址)。然后,反向代理可以根据访问它时使用的 DNS 名称执行不同操作。

虚拟多重主机还允许您将单个反向代理服务器作为多个不同 *域* 的宿主服务器。例如:

可以将多个本地主机名以及多个域全部组合在单个代理服务器中:

虚拟多重主机功能详细信息

为运行虚拟多重主机功能,需要先指定 DNS 主机名和域名(或别名),然后指定应将发送给该主机名的请求定向到的目标 URL 前缀。例如,假定您有以下两个映射:

映射不必从根到根。可以在目标 URL 中指定附加的 URL 路径前缀:

该方法同样适用于虚拟域映射。例如,可以使用:

系统将查看 HTTP "Host:" 标头,并根据该标头选择匹配的虚拟多重主机映射。如果没有匹配的多重主机映射,服务器将按映射在配置文件中的出现顺序继续查看其他映射。如果仍未找到任何匹配项,服务器将不执行映射。找不到任何匹配项时,代理通常会发出 "Proxy denies fulfilling the request" 响应。

Procedure配置虚拟多重主机

  1. 访问 Server Manager 并单击 "URLs" 选项卡。

  2. 单击 "Configure Virtual Multihosting" 链接。

    此时将显示 "Configure Virtual Multihosting" 页面。

  3. 在 "Source Hostname (alias)" 字段中,指定此映射将应用到的本地主机名(或 DNS 别名)。

  4. 在 "Source Domain Name" 字段中,键入此映射将应用到的本地域名。

    通常,此名称为您自己网络的域名,除非您要对多个不同的 DNS 域使用多重主机。

  5. 在 "Destination URL Prefix" 字段中,键入目标 URL 前缀。如果主机名和域名符合上述规范,则会将请求定向到此 URL。

  6. 如果使用模板,请从 "Use This Template" 下拉式列表中选择模板名称;如果不想应用模板,请将该值保留为 "NONE"。

  7. 单击 "OK"。

  8. 单击 "Restart required"。

    将会显示 "Apply Changes" 页面。

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

    对要建立的每个虚拟多重主机映射重复上述步骤。

    所有虚拟多重主机映射都将显示在 "Configure Virtual Multihosting" 页面的底部。"Source Hostname (alias)" 和 "Source Domain Name" 字段连同代理的端口号被合并成单个正则表达式,用于匹配 "Host:" 标头,

    例如,如果主机名为 www、域为 example.com 且端口号为 8080,则会显示以下正则表达式:

    www(|.example.com)(|:8080)

    此正则表达式可以保证与用户可能键入或客户机可能发送的以下所有可能组合匹配。即使端口号不是 80,某些客户机软件也可能将其省略,因为服务器正在侦听该端口。

    • www

    • www:8080

    • www.example.com

    • www.example.com:8080

虚拟多重主机说明