Sun Java System Web Server 7.0 Update 3 管理员指南

设置群集

本节介绍设置群集,以及启用反向代理以支持对 HTTP 请求进行负载平衡的过程。

以下流程图说明了设置群集的过程。

图 4–3 说明群集设置过程的流程图

流程图说明了设置群集的步骤。

  1. 在一个节点上安装 Web Server,使其充当群集中的 Administration Server。

  2. 在其他三个节点上安装 Web Server。选择将 Web Server 安装为管理节点的选项。在安装过程中,请选择在服务器中注册节点的选项。

  3. 请确保 Administration Server 正在使用 SSL 端口进行通信,因为管理节点只能在安全模式下在服务器中注册。

  4. 请确保安装了 Administration Server 和管理节点的所有节点上的系统日期和时间都相同。与服务器相关联的证书,是基于安装了 Administration Server 的节点的系统日期和时间来创建的。如果管理节点的系统日期早于 Administration Server,注册将失败,因为 Administration Server 的证书还未处于有效状态。因此,证书可能在已经过期的情况下被认为有效。

  5. install_dir/admin-server/bin/ 目录中启动 Administration Server。

    install_dir/admin-server/bin>./startserv

  6. 从管理节点启动 wadm 命令行工具。wadm 命令行工具位于 install_dir/bin 目录中。

    install_dir/bin>./wadm

  7. 在 Administration Server 中注册每个管理节点。使用 register-node 命令可以在服务器中注册每个节点。

    例如:


    ./wadm register-node -user=admin --host=abc.sfbay.sun.com --port=8989

    其中,

    abc.sfbay.sun.com

    是将注册节点的 Administration Server 的主机名。

    port

    是 Administration Server 的 SSL 端口号。

  8. 提示您输入管理密码时,请输入 Administration Server 的管理密码。

    Administration Server 和管理节点相互验证,方法是 Administration Server 信任管理节点的服务器证书,管理节点信任由 Administration Server 提供的客户机证书。在注册管理节点的过程中,Administration Server 将生成该管理节点的服务器证书,然后可以在管理节点中下载并安装该证书。管理节点中还将安装服务器证书的颁发者。


    注 –

    只可以通过 SSL 进行注册。


    有关注册节点的信息,请参见《Sun Java System Web Server 7.0 Update 3 Installation and Migration Guide》中的“Registering the Administration Node From the Command-Line”

  9. 使用 install_dir /admin-server/bin/ 目录中的 startserv 命令启动所有的管理节点。

  10. 使用管理控制台或 CLI 在 Administration Server 中创建新的配置。

    提供新配置的配置信息,如配置名称、HTTP 侦听器端口和服务器名。

  11. 在所有节点上创建配置的实例。

  12. 在所有节点上启动实例。


    注 –

    Web Server 提供了可灵活扩展或减小群集的功能。您可以随时在群集中添加或删除实例。


配置用于进行负载平衡的反向代理

Web Server 7.0 提供了完善的内置负载平衡器(即反向代理)。反向代理是服务器群中 Web Server 的网关。通过配置反向代理,请求将被转发到多个类似配置的 Web 服务器。

使用以下过程可在 Web Server 7.0 中启用反向代理:

  1. 在要用于配置反向代理的节点上安装 Web Server。

  2. 创建配置。例如,rp

  3. 使用管理控制台选择“配置”>“虚拟服务器”>“内容处理”>“反向代理”选项卡。单击“新建”按钮。

  4. 输入反向代理 URI 和由逗号分隔的群集中所有计算机的服务器 URL。

    输入服务器 URL 的格式为 hostname: portnumber

  5. 保存所进行的更改。

  6. 部署修改的配置,以将更改应用于配置。

  7. 启动此修改的配置的所有实例。

这将结束用于对 HTTP 请求进行负载平衡的反向代理的配置。


注 –

要在群集环境中配置反向代理,请提供通配符服务器证书或可设置为实际原始服务器主机名的替代主题名称。另一个在主题名称字段中指定原始服务器主机名的方法将限制群集的大小;如果在群集中添加其他节点,将会导致群集失败。

可以使用管理界面来创建通配符服务器证书。在创建服务器证书后,请使用 certutil 获取证书的 base64 编码版本,并在负载平衡器配置中将其安装为信任的 CA 证书。

键入以下命令以生成 base64 编码的证书:bash$./certutil -L -a -d instancedir/config。复制该命令的输出,并将其粘贴到安装证书向导中。


在反向代理中配置超时参数

Procedure在反向代理中配置超时参数

  1. 登录到管理控制台

  2. 从列表中选择相应的配置

  3. 单击编辑虚拟服务器按钮

  4. 单击内容处理选项卡

  5. 单击反向代理子选项卡

  6. 在反向代理列表中单击 "URI"

    将显示一个新窗口。

  7. 单击“HTTP 客户机配置”链接

  8. 您可以编辑“空闲超时”参数。默认值为 300。

监视后端实例

本节详细介绍后端实例的状态检查。

Web Server 7.0 中的 route_offline_thread 可执行后端实例的状态检查。它通过发送 OPTIONS HTTP 请求来查找所有活动的后端实例。如果服务器做出响应,则确认后端实例处于活动状态。在初始阶段之后,该线程每 60 秒(不可配置间隔时间)执行一次脱机后端实例的状态检查。此时,route_offline_thread 将尝试连接到脱机实例,并在成功连接后发送 OPTIONS HTTP 请求。如果实例做出响应,则在其从挂起状态恢复后,route_offline_thread 会立即将其标识为联机。因此,该线程不会对系统和后端实例的性能产生任何影响。

在将后端实例标识为联机后,如果该实例关闭或发生崩溃,route_offline_thread 将无法进行跟踪。如果 Web Server 反向代理参数选择此类实例来处理请求,将会导致读取或发送失败,表明与该实例的连接中断。

可以使用 obj.conf 文件中的 http-client-config ObjectType 函数来定义响应超时值。


ObjectType fn="http-client-config" timeout="400"

注 –

默认超时值为 300 秒。


在定义响应超时值后,如果连接挂起时间超过 400 秒,反向代理参数会关闭与后端实例的连接,并将其标识为脱机。

当反向代理参数尝试与挂起或太忙的后端实例建立连接时,它将最多等待连接响应 5 秒钟,然后将实例标识为脱机。

在图形界面中将 Web Server 用作反向代理

Procedure在图形界面中配置反向代理

  1. 登录到管理控制台

  2. 从列表中选择相应的配置

  3. 单击编辑虚拟服务器按钮

  4. 单击内容处理选项卡

  5. 单击反向代理子选项卡

  6. 单击新建按钮

    将显示一个新窗口。

  7. 如果要为所有请求设置反向代理,请在 "URI" 中输入 (/)。否则,输入要设置为反向代理的 URI

  8. 输入要设置为反向代理的服务器的 URL

    例如,http://<content server-hostname>:port

  9. 单击确定按钮

  10. 单击屏幕右上角的部署暂挂链接

  11. 单击部署按钮

    将显示部署成功消息。

  12. 单击配置选项卡

  13. 启动实例

    访问配置为反向代理的 URI。

自定义反向代理

要配置条件请求处理,您需要手动编辑特定于虚拟服务器的 obj.conf 文件。

例如,如果要为所有 .jsp.php 请求配置反向代理,您需要在 obj.conf 文件中包含以下文本。


<If $uri =~ '.jsp$' or $uri =~ '.php$'> 
NameTrans fn="map" from="/" to="http:/" name="custom_reverse_proxy"
</If>

注 –

您应该在对象名称 default 下面插入以上文本,并将以下文本添加到 obj.conf 文件末尾。


<Object name ="custom_reverse_proxy">
Route fn="set-origin-server" server="http://<hostname>:<port>"
</Object>

<Object name ppath="http:*"
Service fn="proxy-retrieve" method="*"
</Object>

在 CLI 模式下将 Web Server 用作反向代理

请按照下面的步骤在 CLI 模式下配置反向代理。例如,创建一个配置 (config1) 以及一个作为反向代理的实例 (rp)。

  1. 启动 Administration Server:

    $ <install-dir>/admin-server/bin/startserv

  2. 调用 CLI shell:

    <install-dir>/admin-server/bin/wadm -user <username>

    现在,将会看到 wadm shell

  3. 创建 config1

    wadm>create-config --http-port 8080 --server-name config1 --server-user root config1

  4. config1 配置创建实例:

    wadm>create-instance --config config1 <host-name>

  5. 在创建的配置中添加 Web 应用程序:

    wadm>add-webapp --config config1 -vs config1 --uri/test <warfile>

  6. 部署 Web 应用程序

    wadm> deploy-config --user=admin --password-file=admin.pwd --host=serverhost --port=8989 config1

  7. 创建 rp 配置:

    wadm>create-config --http-port 8081 --server-name rp --server-user root rp

    执行以下命令,以便将 rp 配置作为反向代理:

    wadm>create-reverse-proxy --config rp --vs rp --uri-prefix/--server http://<host-name>:8080

  8. rp 配置创建实例

    wadm>create-instance --config rp <host-name>

  9. 启动实例:

    wadm>start-instance --config config1 <host-name>

    wadm>start-instance --config rp <hostname>

现在,可通过 rp 实例查看在 config1 中部署的 Web 应用程序。

http://<rp instance hostname>:8081/test