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

使用 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 服务器日志以解决问题。此外,检查是否正确执行了所有配置步骤。