Sun Java System Application Server 9.1 高可用性管理指南

第 4 章 配置 Web 服务器以实现负载平衡

本章介绍了如何配置用于 Application Server 9.1 和 GlassFish v2 附带的负载平衡器插件支持的 Web 服务器。Application Server 9.1 附带的负载平衡器插件支持以下 Web 服务器:


注 –

GlassFish v2 仅支持 Sun Java System Web Server(版本 6.1 和 7.0)。要将负载平衡器插件与 GlassFish v2 一起使用,需要手动安装和配置负载平衡器插件。有关将负载平衡器插件与 GlassFish v2 一起安装的更多信息,请参见《Sun Java System Application Server 9.1 Installation Guide》中的第 1  章 “Installing Application Server Software”


负载平衡器插件的安装程序是 Application Server 9.1 安装程序的一部分,它对 Web 服务器的配置文件进行了一些修改。这些更改取决于所用的 Web 服务器。此外,对于某些 Web 服务器,必须进行手动配置以使负载平衡器正常工作。


注 –

可以将负载平衡器插件与 Sun Java System Application Server 9.1 一起安装在或单独安装在运行支持的 Web 服务器的计算机上。有关安装过程的完整详细信息,请参见《Sun Java System Application Server 9.1 Installation Guide》中的第 1  章 “Installing Application Server Software”


配置 Sun Java System Web Server

对于 Sun Java System Web Server,使用 Sun Java System Application Server 9.1 安装向导安装负载平衡器插件时,该安装向导将自动执行所有必要的配置。不需要进行手动配置。与 Application Server 9.1 捆绑在一起的负载平衡器插件支持 Sun Java System Web Server 的以下版本:

但是,如果使用的是 GlassFish v2,必须从 http://download.java.net/javaee5/external/SunOS_X86/aslb/jars/aslb-9.1-MS4-b7.jar 单独下载 Application Server 负载平衡器插件,并进行一些手动更改以对其进行设置。有关如何为 GlassFish v2 安装和设置该插件的详细步骤,请参阅《Sun Java System Application Server 9.1 Installation Guide》中的“To Install the Load Balancing Plug-in (standalone)”一节。

Procedure配置 Sun Java System Web Server

开始之前

注 –

以下步骤由 Application Server 9.1 的安装程序自动执行。但是,如果使用的是 GlassFish v2,将需要手动执行这些步骤。


  1. 在 Web 服务器实例的 magnus.conf 文件中,添加以下行:

    ##BEGIN EE LB Plug-in Parameters
    Init fn="load-modules"
    shlib="web-server-install-dir/plugins/lbplugin/bin/libpassthrough.so"
    funcs="init-passthrough,service-passthrough,name-trans-passthrough" Thread="no"
    Init fn="init-passthrough"
    ##END EE LB Plug-in Parameters=
  2. 如果以下行尚不存在,请附加该行:

    Init fn="load-modules" shlib=".../libj2eeplugin.so" shlib_flags="(global|now)"
  3. 在文件 web-server-install-dir/config/obj.conf 中,在首次出现的字符串 nametrans 之前在单行中插入以下内容:

    Nametrans fn="name-trans-passthrough" name="lbplugin"
    config-file="web-server-install-dir/config/loadbalancer.xml"

    NameTrans 条目在 obj.conf 中的显示顺序非常重要。安装程序会将 NameTrans 条目放在正确的位置,但是,如果要因其他目的而编辑 obj.conf,必须确保顺序仍然正确。尤其是,负载平衡器信息必须在 document-root 函数之前显示。有关 obj.conf 文件的更多信息,请参见《Sun Java System Web Server 7.0 Administrator’s Configuration File Reference》

  4. 将以下行附加到文件 web-server-install-dir/config/obj.conf 中:

    <Object name = "lbplugin"> 
    ObjectType fn="force-type" type="magnus-internal/lbplugin"
    PathCheck fn="deny-existence" path="*/WEB-INF/*"
    Service type="magnus-internal/lbplugin" fn="service-passthrough"
    Error reason="Bad Gateway" fn="send-error" uri="$docroot/badgateway.html"
    </Object>
  5. 编辑 web-server-install-dir /start 脚本,将 LD_LIBRARY_PATH 值更新为包括 app-server-install-dir/lib/lbplugin/lib

    app-server-install-dir /lib/lbplugin/lib 目录包含负载平衡器插件所需的二进制文件。

  6. (可选的)对于基于 DAS 的新负载平衡器管理,配置 Web 服务器的 SSL 功能。

    有关 Web Server 6.1 的详细说明,请参见在 SSL 模式下为 Sun Java System Web Server 6.1 设置负载平衡器

    有关 Web Server 7 的详细说明,请参见在 SSL 模式下为 Web Server 7 设置负载平衡器

  7. 如果 Web 服务器尚未运行,请启动它。

配置 Sun Java System Web Server 以使用“自动应用”功能

“自动应用”是 Application Server 9.1 提供的一种功能,用于通过线路将负载平衡器配置自动发送到 Web 服务器配置目录。有关此功能的更多信息,请参见自动应用。以下过程介绍了如何配置 Sun Java System Web Server(版本 6 和 7)以使用此功能。

Procedure在 SSL 模式下为 Sun Java System Web Server 6.1 设置负载平衡器


注 –

仅当希望使用负载平衡器插件的“自动应用”功能时,才需要执行本节中的步骤。此功能有助于通过线路将负载平衡器配置自动发送到 Web 服务器配置目录。


  1. 使用浏览器,访问 Web Server 的管理控制台并登录。

  2. 选择服务器实例,然后单击“管理”。

  3. 单击“安全性”选项卡。

  4. 通过提供用户名和密码初始化信任数据库。为此,可以使用 certutil 命令或 GUI。certutil 命令的以下选项可用于初始化信任数据库:

    certutil -N -P  "https-instance-name-hostname-" -d .
    • certutil 发出提示时,输入密码对您的密钥进行加密。输入密码(密码将用于对密钥进行加密)。密码至少应该包含八个字符,且应该至少包含一个非字母字符。

    • 当系统提示您输入新密码时,指定密码。

  5. 使用以下命令创建一个本地证书授权机构 (Certificate Authority, CA) 样例:

    certutil -S -P "https-boqueron.virkki.com-boqueron-" 
    -d . -n SelfCA -s "CN=Self CA,OU=virkki.com,C=US" 
    -x -t "TC,TC,TC" -m 101 -v 99 -5
    1. 当系统提示您输入 0-7 以表示证书类型时,键入表示 SSL CA 的 5。再次出现提示时,指定 9。

    2. 在被询问 "Is this a critical extension [y/n]?" 时,指定 "y"。

  6. 使用上面的样例 CA 生成证书

    certutil -S -P "https-instance-name-hostname-"
    -d . -n MyServerCert -s "CN=boqueron.virkki.com,C=US"
    -c SelfCA -t "u,u,u" -m 102 -v 99 -5
    1. 当系统提示您输入 0-7 以表示证书类型时,键入表示 SSL 服务器的 1。再次出现提示时,指定 9。

    2. 在被询问 "Is this a critical extension [y/n]?"时,指定 "y"。

  7. 创建 HTTPS 侦听器,如以下步骤所述:

    1. 登录到 Web 服务器的管理服务器。

    2. 选择一个服务器,然后单击“管理”。

    3. 单击“添加侦听套接字”。在“添加侦听套接字”页面中,执行以下操作:

      1. 指定端口号。

      2. 确保在“服务器名”中指定服务器的全限定域名 (fully qualified domain name, FQDN)。例如,如果主机名是 machine1,域名是 server.example.com,则 FQDN 是 machine1.server.example.com。

      3. 从“安全性”下拉列表中选择“启用”。

      4. 单击“确定”。

    4. 转到“编辑侦听套接字”页面,然后选择刚创建的侦听套接字。

    5. 在“侦听套接字”页面中,验证服务器证书名是否与在步骤 6 中提供的证书名相同。

Procedure为 Sun Java System Web Server 6.1 导出和导入 DAS 证书

  1. 如果使用的是 Application Server 9.1,请通过执行以下命令导出 DAS 证书:

    <appserver_install_dir>/lib/upgrade/pk12util -d <domain root>/config -o sjsas.p12-W
    <file password> -K <master password> -n s1as
    • 如果使用的是 GlassFish v2,必须使用以下命令导出 DAS 证书:

      <JAVA_HOME>/bin/keytool -export -rfc -alias s1as -keystore
      <GLASSFISH_HOME>/domains/<DOMAIN_NAME>/config/keystore.jks-file s1as.rfc

      其中,<GLASSFISH_HOME> 表示 Application Server 安装目录,<DOMAIN_NAME> 表示要导出其证书的域。

    • 将证书文件复制到 Web 服务器配置目录。

  2. 如果使用的是 Application Server 9.1,请使用以下命令将 DAS 证书导入到 Web Server 实例中:

    <webserver_install_dir>/bin/https/admin/bin/pk12util-i sjsas.p12 -d 
    <webserver_install_dir>/alias -W<file password> -K <webserver security db password> -P
    <instance-name>-<hostname>-
    <webserver_install_dir>/bin/https/admin/bin/certutil -M -n s1as -t "TCu"
    -d <webserver_install_dir>/alias -P <instance-name>-<hostname>-

    这些命令将使 Application Server CA 成为受信任的 CA 以同时签署客户机证书和服务器证书。

    • 如果使用的是 GlassFish v2,请从使用 NSS 安全工具 certutil 创建的 rfc 文件导入 DAS 证书。

      <webserver_install_dir>/bin/certutil -A -a -n s1as -t "TCu" -i s1as.rfc 
      -d <webserver_install_dir>/alias -P <instance-name>-<hostname>-

      可以使用以下命令检查此证书是否存在,将列出 s1as 证书以及其他 CA 证书(包括默认的服务器证书)。确保在单行中键入命令。

      <WS_INSTALL_ROOT>/bin/certutil -L 
      -d <webserver_install_dir>/alias -P <instance-name>-<hostname>-
  3. 如果 obj.conf 不包含以下行,请在文件结尾附加它们。如果使用的是 Application Server 9.1,安装程序将自动执行此步骤。

    <Object ppath="*lbconfigupdate*">
    PathCheck fn="get-client-cert" dorequest="1" require="1"
    <Object>
    <Object ppath="*lbgetmonitordata*">
    PathCheck fn="get-client-cert" dorequest="1" require="1"
    </Object>
  4. 可以使用在验证安装一节中提供的步骤从 DAS 验证上面的设置。可以使用任何其他 CA 和服务器证书,而不是使用本地 CA。在这种情况下,可以跳过上一节中列出的步骤 5 和 6,但是需要导入从其他 CA 获得的服务器证书。

在 SSL 模式下为 Web Server 7 设置负载平衡器

  1. 使用以下命令启动 Web Server 的管理服务器。

    webserver-install-dir/admin_server/bin/startserv
  2. 创建 HTTPS 侦听器,如以下步骤所述。如果 HTTP 侦听器已存在,则可以跳过以下步骤,并前进到为 Sun Java System Web Server 7 导出和导入 DAS 证书一节。

    1. 登录到 Web Server 管理控制台。

    2. 选择默认配置。通常,默认配置名称将与主机名完全相同。要从“日常任务”页面执行此操作,请从“选择配置”列表中选择配置并单击“编辑配置”。或者,打开“配置”页面,单击“配置”表中的默认配置名称。

    3. 如果显示的是“日常任务”页面,请单击“请求服务器证书”。否则,如果显示的是“配置”页面,请打开“证书”页面,并单击“服务器证书”表中的“请求”按钮。这是为此默认配置创建自签名服务器证书所必需的。

    4. 提供“请求服务器证书”窗口要求的详细信息。

      执行此操作时,只需确保为“*服务器名 (cn)”提供的值是安装 Web 服务器的计算机的全限定域名 (fully qualified domain name, FQDN) 即可。例如,如果主机名是 machine1,域名是 server.example.com,则 FQDN 是 machine1.server.example.com。选择所提供的任何默认值。

      也可以使用以下命令创建自签名证书。确保在单行中键入命令。

      webserver-install-dir/bin/wadm create-selfsigned-cert --user=
      admin-user --server-name=host-name 
      --nickname=ServerCert --token=internal --config=config-name
      
    5. 返回到所选的配置页。

    6. 打开“HTTP 侦听器”页面,然后单击“新建”按钮。这将创建启用 SSL 的 HTTP 侦听器。

    7. 提供“新建 HTTP 侦听器”向导要求的详细信息。确保服务器名是在前面步骤中提供的 FQDN。选择 "SSL" 按钮,然后从“证书”列表中选择以前创建的服务器证书。例如,cert-machine1.server.example.com。

      也可以使用以下命令创建 HTTP 侦听器。确保在单行中键入每个命令。

      webserver-install-dir/bin/wadm create-http-listener 
      --user=admin-user --server-name=host-name 
      --default-virtual-server-name=default-virtual-server-name 
      --listener-port=8090 --config=config-name http-listener-ssl
      webserver-install-dir/bin/wadm set-ssl-prop 
      --user=admin-user --http-listener=http-listener-ssl 
      --config=config-name enabled=true server-cert-nickname=ServerCert
    8. 执行上面列出的步骤后,将在管理控制台的右上角看到警报“部署暂挂”。单击它,并按照说明完成部署。此步骤确保将在 Web 服务器的管理服务器中对配置存储进行的更改复制到 Web 服务器实例。

Procedure为 Sun Java System Web Server 7 导出和导入 DAS 证书

通过导出和导入 DAS 证书,可以使 DAS 成为 Web Server 的受信任客户机。使用 DAS 证书的客户机验证可确保只有 DAS 作为受信任客户机连接到 Web Server。

  1. 打开终端窗口,并使用以下命令设置 LD_LIBRARY_PATH:

    export LD_LIBRARY_PATH=/opt/SUNWappserver/lib
  2. 如果使用的是 Application Server 9.1,请通过执行以下命令导出 DAS 证书。DAS 证书同时用作服务器证书和客户机证书。

    <appserver_install_dir>/lib/upgrade/pk12util -d <domain root>/config -o s1as.p12 -W
    <s1as.pk12-file-password> -K <master password> -n s1as
    • 如果使用的是 GlassFish v2,请使用名为 keytool 的 Java SE 5.0 安全工具导出以别名 "s1as" 命名的 DAS 证书。执行此操作时,选择 -rfc 选项以可打印编码格式(如 Internet RFC 1421 标准所定义)导出证书。

      从命令行,可以使用以下命令导出 DAS 证书:

      <JAVA_HOME>/bin/keytool -export -rfc -alias s1as -keystore
      <GLASSFISH_HOME>/domains/<DOMAIN_NAME>/config/keystore.jks-file s1as.rfc

      其中,<GLASSFISH_HOME> 表示 Application Server 安装目录,<DOMAIN_NAME> 表示要导出其证书的域。

    • 将证书文件复制到 Web 服务器配置目录。

  3. 如果使用的是 Application Server 9.1,请将 DAS 证书导入到 Web Server 实例中,并使用以下命令设置证书的信任属性:

    <webserver_install_dir>/bin/pk12util -i <path_to_s1as.pk12-file> 
    -d <webserver_install_dir>/admin-server/config-store/<default-config-name>/config 
    -K <webserver security db password> -W <s1as.pk12-file-passwd>
    <webserver_install_dir>/bin/certutil -M -n s1as -t "TCu" 
    -d <webserver_install_dir>/admin-server/config-store/<default-config-name>/config

    这些命令将使 Application Server CA 成为受信任的 CA 以同时签署客户机证书和服务器证书。

    • 如果使用的是 GlassFish v2,请从使用 NSS 安全工具 certutil 创建的 rfc 文件导入 DAS 证书。

      <webserver_install_dir>/bin/certutil -A -a -n s1as -t "TCu" -i s1as.rfc -d
      <webserver_install_dir>/admin-server/config-store/<CONFIG_NAME>/config

      其中,<webserver_install_dir> 表示 Web 服务器安装目录,<CONFIG_NAME> 表示为默认 Web 服务器实例创建的配置名称。

      可以使用以下命令检查此证书是否存在,将列出 s1as 证书以及其他 CA 证书(包括默认的服务器证书)。确保在单行中键入整个命令。

      <webserver_install_dir>/bin/certutil -L -d
      <webserver_install_dir>/admin-server/config-store/
      <DEFAULT_CONFIG_NAME>/config

      也可以使用 Web Server 管理控制台对此进行查看。选择已向其导入证书的配置(本例中为默认配置),然后选择“证书”选项卡。要查看所有的可用证书,请选择“证书颁发机构”子选项卡。

  4. 如果使用的是 GlassFish v2,请对 Web Server 7 进行以下配置更改。如果使用的是 Application Server 9.1,可以跳到下一步。

    1. 在位于 <WS_INSTALL_ROOT>/admin-server/config-store/<DEFAULT_CONFIG_NAME>/config/ obj.conf 文件中附加以下行。确保在键入这些行时没有包含任何结尾空格。

       <Object ppath="*lbconfigupdate*">
       PathCheck fn="get-client-cert" dorequest="1" require="1"
      </Object>
      <Object ppath="*lbgetmonitordata*">
       PathCheck fn="get-client-cert" dorequest="1" require="1"
      </Object>
  5. 部署该配置。进行前面步骤中列出的更改时,管理控制台将此配置标记为要部署。

    1. 在 Web Server 管理控制台中选择“部署暂挂”的图标。也可以使用 CLI 实用程序 wadm 部署此配置,如下所示:

      <webserver_install_dir>/bin/wadm deploy-config --user=<admin> <DEFAULT_CONFIG_NAME>
  6. 从 GlassFish DAS 测试此设置,以查看它是否通过 SSL 与已配置的 HTTP 负载平衡器进行通信。有关更多信息,请参见验证安装

使用 Apache Web Server

与 Application Server 9.1 捆绑在一起的负载平衡器插件支持 Apache Web Server 2.0.x。要使用 Apache Web Server,必须在安装负载平衡器插件前后执行某些配置步骤。负载平衡器插件安装也将对 Apache Web Server 进行其他修改。安装插件后,您必须执行其他配置步骤。


注 –

如果使用 --with-mpm=worker 选项进行编译,则 Apache 2 将具有多线程行为。


对使用 Apache Web Server 的要求

对于 Apache Web Server,您的安装必须满足最低要求。

使用 Apache 时,负载平衡器插件有以下要求:

这些软件源可以从 http://www.sunfreeware.com 获得

此外,在编译 Apache 之前,请执行以下步骤:


注 –

要使用 gcc 以外的 C 编译器,请在 PATH 环境变量中设置 C 编译器和 make 实用程序的路径。


应用 Apache Web Server 修补程序

为 Apache 安装负载平衡器插件之前,应用 Apache Web Server 问题 12355 的修补程序。有关此问题的更多详细信息可以从 http://issues.apache.org/bugzilla/show_bug.cgi?id=12355 获得。“自动应用”功能需要此修补程序才能工作。要应用该修补程序,请按照以下步骤操作。

  1. 解压缩 http-2.0.59.tar 并转到目录 httpd-2.0.59。

  2. http://issues.apache.org/bugzilla/attachment.cgi?id=16495 下载该修补程序并将它另存为一个文件,例如 12355.diff

  3. 从目录 httpd-2.0.59/modules/ssl 运行以下命令:

    patch < 12355.diff

在安装负载平衡器插件之前配置 Apache

必须编译并生成 Apache 源代码以使用 SSL 运行。本节介绍成功编译 Apache Web Server 以运行负载平衡器插件所需的最低要求和高级步骤。这些要求和步骤仅适用于本软件的 Solaris 和 Linux 版本。有关 Apache 的 Windows 版本的信息,请参见 Apache Web 站点。


注 –

此处包含的说明摘自 http://httpd.apache.org/docs 中的说明。有关安装 SSL 可识别 Apache 的详细说明,请参见此 Web 站点。


Procedure安装 SSL 可识别 Apache

开始之前

您必须已下载并解压缩 Apache 软件。

  1. 下载并解压缩 OpenSSL 源(可以从 http://openssl.org 获得)。

  2. 编译和生成 OpenSSL。

    有关完整的安装说明,请参见解压缩 OpenSSL 所在目录中的名为 INSTALL 的文件。此文件包含有关将 OpenSSL 安装到用户指定位置的信息。

    有关 OpenSSL 的更多信息,请参见 http://www.openssl.org/

  3. 下载并解压缩 Apache。

    Apache 可以从 http://httpd.apache.org 获得。

  4. 编译并生成 Apache。配置源代码树:

    1. cd http-2.0_x

    2. 运行以下命令:

      ./configure --with-ssl= OpenSSL-install-path --prefix= Apache-install-path --enable-ssl --enable-so

      在以上命令中,x 是 Apache 的版本号,open-ssl-install-path 是 OpenSSL 安装目录的绝对路径,Apache-install-path 是安装 Apache 的目录。

      请注意,如果 Apache 2 服务器要接受 HTTPS 请求,则只需使用 --enable-ssl --enable-so 选项。

  5. 对于 Linux 2.1 上的 Apache,编译之前请执行以下操作:

    1. 打开 src/MakeFile 并找到自动生成部分的结尾处。

    2. 在自动生成部分后的前四行之后添加以下行:

      LIBS+= -licuuc -licui18n -lnspr4 -lpthread -lxerces-c 
      -lsupport -lnsprwrap -lns-httpd40
      LDFLAGS+= -L/application-server-install-dir/lib -L/opt/sun/private/lib

      请注意,仅在 Application Server 作为 Java Enterprise System 的一部分进行安装时,-L/opt/sun/private/lib 才是必需的。

      例如:

      ## (End of automatically generated section)
      ## 
      CFLAGS=$(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS)
      LIBS=$(EXTRA_LIBS) $(LIBS1)
      INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES)
      LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS)
      "LIBS+= -licuuc -licui18n -lnspr4 -lpthread 
      -lxerces-c -lsupport -lnsprwrap -lns-httpd40
      LDFLAGS+= -L/application-server-install-dir /lib -L/opt/sun/private/lib
    3. 设置环境变量 LD_LIBRARY_PATH

      进行独立安装时,将其设置为 Application Server: as-install/lib

      进行 Java Enterprise System 安装时,将其设置为 Application Server:as-install/lib:opt/sun/private/lib

      如果使用的是 Solaris 9,请将 /usr/local/lib 添加到 LD_LIBRARY_PATH 中。

  6. 按照您所用版本的安装说明编译 Apache。

    有关更多信息,请参见 http://httpd.apache.org/

    通常,步骤如下:

    1. make

    2. make install

  7. 确保 Apache 的 ssl.confhttpd.conf 文件包含正确的环境值。

    • ssl.conf 中,对于 VirtualHost default:port ,将默认主机名和端口分别替换为安装有 Apache 的本地系统的主机名以及服务器的端口号。

      如果不进行此更改,则负载平衡器将无法正常工作。在 Solaris 上,Apache 可能无法启动;在 Linux 上,HTTPS 请求可能无法执行。

    • ssl.conf 中,对于 ServerName www.example.com:443,将 www.example.com 替换为安装有 Apache 的本地系统的主机名。

      如果不进行此更改,则会在安装了安全性证书的情况下启动 Apache 时,出现以下警告:


      [warn] RSA server certificate CommonName (CN) 
      hostname does NOT match server name!

      有关安装 Apache 证书的更多信息,请参见为 Apache 创建安全性证书

    • httpd.conf 中,对于 ServerName www.example.com:80,将 www.example.com 替换为安装有 Apache 的本地系统的主机名。

      如果不进行此更改,则会在启动 Apache 时出现以下警告:系统无法确定服务器的全限定域名,并且存在重叠的 VirtualHost 条目。

  8. 确保 Apache 用户具有对 apache-install-location/conf/ 目录以及此目录中文件的必需访问权限。

    Apache 用户是 Apache 服务器响应请求所用的 UNIX 用户。此用户在文件 httpd.conf 中定义。

    如果以超级用户身份安装了 Apache,请阅读 apache-install-location /conf/httpd.conf 中有关配置 Apache 用户和组的说明。


    注 –

    确保您的用户和组配置满足此目录的安全要求。例如,要限制对此目录的访问,请将 Apache 用户添加到与目录所有者相同的用户组。


    1. 要确保“自动应用”功能正常工作,请授予 Apache 用户对 apache-install-location/conf/ 目录的读取访问权限、写入访问权限和执行访问权限。

      • 如果 Apache 用户与此目录的所有者在相同的组中,请将模式更改为 775。

      • 如果 Apache 用户与此目录的所有者在不同的组中,请将模式更改为 777。

    2. 要确保在启动 Apache 时初始化负载平衡器插件,请授予 Apache 用户对以下文件的读取访问权限和写入访问权限:

      • apache-install-location /conf/loadbalancer.xml

      • apache-install-location /conf/sun-loadbalancer_1_2.dtd

导出和导入 DAS 证书

必须使用以下命令手动导出 DAS 证书:

appserver-install-dir/lib/upgrade/certutil -L -d appserver-instance-dir/config -n s1as -a -o sjsas.crt

在安装负载平衡器插件时,将需要此证书。

Application Server 9.1 安装程序将为您执行以下任务。

负载平衡器插件安装程序所做的修改

负载平衡器插件安装程序会将所需的文件提取到 Web 服务器根目录下的 modules 目录中:

它将以下条目添加到 Web 服务器实例的 httpd.conf 文件中:

##BEGIN EE LB Plugin Parameters
LoadModule apachelbplugin_module modules/mod_loadbalancer.so
#AddModule mod_apachelbplugin.cpp
<IfModule mod_apachelbplugin.cpp> 
  config-file webserver-instance/httpd/conf/loadbalancer.xml
  locale en
</IfModule>
<VirtualHost machine-ip-address>
  DocumentRoot "webserver-instance/httpd/htdocs"
  ServerName server-name
</VirtualHost>
##END EE LB Plugin Parameters

在安装负载平衡器插件之后配置 Apache

Apache Web Server 必须具有正确的安全文件才能使用负载平衡器插件。负载平衡器依赖于需要这些安全数据库文件的 NSS(Network Security Service,网络安全服务)库。您需要从 Application Server 获取这些安全数据库文件,因此必须将 Application Server 安装在 Web Server 可以访问的位置。

要将 Apache 安全文件配置为使用负载平衡器,请执行以下操作:

/usr/lib/mps 附加到 Apache-install-dir/bin/apachectl 脚本中的 LD_LIBRARY_PATH

Procedure为 Apache 创建安全性证书

为了在 Apache 上支持 HTTPS 请求,需要执行以下步骤。

有关在 Apache 上设置安全性证书的详细信息,请参见 http://httpd.apache.org/docs/2.2/ssl/ssl_faq.htmlhttp://www.modssl.org/docs/2.8/ssl_faq.html 中的说明。以下过程摘自这些 Web 站点。

  1. 设置以下环境变量:

    OPENSSL_CONF=OpenSSL-installation-directory /apps/openssl.cnf

  2. 通过执行以下命令,创建服务器证书和密钥:

    openssl req -new -x509 -keyout newreq.pem -out newreq.pem -days 365

    当系统要求提供通用名称时,请提供计划运行 Apache 所用的主机名。对于所有其他提示,请输入满足您所有特定要求的值。

    此命令会创建 newreq.pem

  3. 从运行 openssl 命令的位置打开新创建的 newreq.pem

  4. 复制以 BEGIN CERTIFICATE 开始并以 END CERTIFICATE 结束的行,并将其粘贴在 Apache-install-dir /conf/ssl.crt/server.crt 中。例如:


    -----BEGIN CERTIFICATE-----
    ....
    ...
    -----END CERTIFICATE-----
  5. 复制以 BEGIN RSA PRIVATE KEY 开始并以 END RSA PRIVATE KEY 结束的行,并将其粘贴在 Apache-install-dir /conf/ssl.key/server.key 中。例如:


    -----BEGIN RSA PRIVATE KEY-----
    ...
    ...
    ...
    -----END RSA PRIVATE KEY-----
  6. 确保 Apache-install-dir /conf/ssl.conf 中的变量 SSLCertificateKeyFile SSLCertificateFile 具有正确的值。

  7. 确保 ServerName 并非为 www.example.com。ServerName 应当为运行 Apache 所用的实际主机名,从而与您在创建服务器证书和密钥时输入的通用名称相匹配。

修改 httpd.conf 参数以启用粘性 round robin

为了使粘性 round robin 功能正常工作,请在 httpd.conf 文件中的 prefork MPM 部分下,确保参数 StartServersmaxclients 的值设置为 1。否则,每个新的会话请求都会产生一个新的 Apache 进程,而且将初始化负载平衡器插件,从而导致请求停放在同一实例中。

在 Solaris 和 Linux 上启动 Apache

通常,应当使用安装 Application Server 时所用的用户身份启动 Apache。在以下情况下,您必须以超级用户身份启动 Apache:

要以 SSL 模式启动 Apache,请使用以下命令之一:

apachetl startsslapachetl -k start -DSSL

如果需要,请查阅 Apache Web 站点以获得有关启动 Apache Server 的最新信息。

验证安装

  1. 安装负载平衡器插件。有关安装该插件的详细步骤,请参见《Sun Java System Application Server 9.1 Installation Guide》。在安装过程中,提供指向 DAS 证书的路径。

  2. 登录到 Application Server 管理控制台,并创建一个新群集。有关创建新群集的步骤,请参阅管理控制台联机帮助。

  3. 创建新的 HTTP 负载平衡器。创建负载平衡器时,请将 Web 服务器主机的 FQDN 指定为设备主机名,将 Web 服务器 SSL 端口指定为设备端口,并选择上一步中创建的群集作为目标。有关创建新的 HTTP 负载平衡器的详细步骤,请参阅管理控制台联机帮助。

  4. 要验证 DAS 和 Web 服务器之间的通信是否正常进行,请在管理控制台中,导航到“HTTP 负载平衡器”节点,然后单击“HTTP 负载平衡器”。在出现的“负载平衡器设备设置”页面中,按“测试连接”按钮。

    如果在创建负载平衡器时未启用“自动应用更改”选项,则必须通过转到“导出”选项卡并单击“立即应用更改”手动导出负载平衡器配置。

  5. 如果测试连接失败,请务必检查 Application Server 域日志和 Web 服务器日志以解决问题。此外,检查是否正确执行了所有配置步骤。

使用 Microsoft IIS

要将 Microsoft Internet Information Services (IIS) 与负载平衡器插件一起使用,请按照以下各节中提供的步骤操作。

Procedure配置 Microsoft IIS 以使用负载平衡器插件

  1. 打开 Internet 服务管理器。

  2. 选择要为其启用此插件的 Web 站点。

    此 Web 站点通常名为“默认 Web 站点”。

  3. 在此 Web 站点上单击鼠标右键,并选择“属性”以打开“属性”记事本。

  4. 按照以下步骤,添加一个新的 ISAPI 过滤器:

    1. 打开“ISAPI 过滤器”选项卡。

    2. 单击“添加”。

    3. 在“过滤器名称”字段中,输入 Application Server

    4. 在“可执行文件”字段中,键入 C:\Inetpub\wwwroot\sun-passthrough\sun-passthrough.dll

    5. 单击“确定”关闭“属性”记事本。

  5. 创建并配置新的虚拟目录:

    1. 在默认的 Web 站点上单击鼠标右键,选择“新建”,然后选择“虚拟目录”。

      将打开“虚拟目录创建向导”。

    2. 在“别名”字段中,键入 sun-passthrough

    3. 在“目录”字段中,键入 C:\Inetpub\wwwroot\sun-passthrough

    4. 选中“执行权限”复选框。

      使与权限相关的所有其他复选框保持未选中状态。

    5. 单击“完成”。

  6. sun-passthrough.dll 文件的路径、Application Server as-install/bin 以及 Application Server as-install /lib 添加到系统的 PATH 环境变量中。

  7. 对于 IIS 6.0 用户,请使用以下步骤将负载平衡器 Web 服务扩展配置为在 IIS 6 中运行:

    1. 在 IIS 管理器中,展开本地计算机,并单击“Web 服务扩展”。

    2. 在“任务”窗格中,选择“添加一个新的 Web 服务扩展”。

    3. 将扩展的名称输入为 Sun-Passthrough 并单击“添加”。

    4. 键入 sun-passthrough.dll 的路径 C:\Inetpub\wwwroot\sun-passthrough

    5. 单击“确定”。

    6. 选择“设置扩展状态为允许”。

  8. 对于 IIS 6.0 用户,请创建文件 C:\inetput\wwwroot\sun-passthrough\lb.log,并为组 IIS_WPG 提供对该文件的 NTFS 写入和修改权限。

    由于 IIS 6.0 以“工作进程隔离模式”运行,因此它会使用组 IIS_WPG 的安全权限运行 IIS 服务器。

  9. 对于所有 IIS 用户,请重新启动计算机。

  10. 检验 Web 服务器、负载平衡器插件和 Application Server 是否运行正常。

    在 Web 浏览器中键入以下地址,以访问此 Web 应用程序的上下文根:http://web-server-name/web-application,其中 web-server-name 是 Web 服务器的主机名或 IP 地址,web-application 是在 C:\Inetpub\wwwroot\sun-passthrough\sun-passthrough.properties 文件中列出的上下文根。


    提示 –

    ISAPI 过滤器状态应当为绿色。要检查过滤器状态,请访问此 Web 站点的 "Properties" 笔记簿,并单击 "ISAPI Filters" 选项卡。如果状态不为绿色,请尝试向 IIS HTTP 端口发送任一 HTTP 请求。如果请求失败,则表明情况确实如此。请重新检查 ISAPI 过滤器的状态。


自动配置的 sun-passthrough 属性

安装程序会在 sun-passthrough.properties 中自动配置以下属性。您可以更改默认值。

属性 

定义 

默认值 

lb-config-file

负载平衡器配置文件的路径 

IIS-www-root\sun-passthrough \loadbalancer.xml

log-file

负载平衡器日志文件的路径 

IIS-www-root\sun-passthrough\lb.log

log-level

Web 服务器的日志级别 

INFO 


注 –

IIS 当前不支持 Application Server 9.1 的“自动应用”功能。