Sun Java System Application Server Enterprise Edition 8.1 2005Q2 高可用性管理指南

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

负载平衡器插件安装程序将对 Web 服务器的配置文件进行一些修改。所作的更改取决于该 Web 服务器。


注 –

在运行支持的 Web 服务器的计算机上,负载平衡器插件可随 Sun Java System Application Server Enterprise Edition 一起安装,也可单独安装。有关安装过程的完整信息,请参见《Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Installation Guide》中的第 1  章 “Installing Application Server Software”(如果使用独立的 Application Server)或《Sun Java Enterprise System 2005Q5 Installation Guide》(如果使用 Java Enterprise System)。


对 Sun Java System Web Server 的修改

安装程序将向 Sun Java System Web Server 的配置文件添加以下条目:

向 Web Server 实例的 magnus.conf 文件添加以下条目:

##EE lb-pluginInit 
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 addition for EE lb-plugin

向 Web Server 实例的 obj.conf 文件添加以下条目:

<Object name=default>
NameTrans fn="name-trans-passthrough" name="lbplugin" 
config-file="web_server_install_dir/web_server_instance/config/loadbalancer.xml"
<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>

在上述代码中,lbplugin 是唯一标识 Object 的名称;web_server_install_dir/web_server_instance/config/loadbalancer.xml 是负载平衡器要在其上运行的虚拟服务器的 XML 配置文件所在的位置。

安装后,请按照设置 HTTP 负载平衡中所述配置负载平衡器。

使用 Apache Web Server

要使用 Apache Web Server,您必须在安装负载平衡器插件之前先执行某些配置步骤。负载平衡器插件安装也将对 Apache Web Server 进行其他修改。安装插件后,您必须执行其他配置步骤。


注 –

在 Apache 1.3 上,当多个 Apache 子进程运行时,每个进程都有自己的负载平衡 Round Robin 序列。例如,如果有两个 Apache 子进程正在运行,并且负载平衡器插件在两个应用程序服务器实例上进行负载平衡,则第一个请求和第二个请求将发送给实例 1,而第三个和第四个请求则将发送给实例 2。重复此模式(实例 1、实例 1、实例 2、实例 2 等)。此行为可能与您预期的行为(即,实例 1、实例 2、实例 1、实例 2 等)不同。在 Sun Java System Application Server 中,用于 Apache 的负载平衡器插件将为每个 Apache 进程实例化一个负载平衡器实例,从而创建独立的负载平衡序列。

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


对使用 Apache Web Server 的要求

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

适用于 Apache 1.3 的要求

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


注 –

要使用 gcc 以外的 C 编译器,请设置 C 编译器的路径并使实用程序位于 PATH 环境变量中。例如,使用 sh shell:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:appserver_installdir/lib


适用于 Apache 2 的最低要求

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

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

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


注 –

要使用 gcc 以外的 C 编译器,请设置 C 编译器的路径并使实用程序位于 PATH 环境变量中。例如,使用 sh shell:export LD_LIBRARY_PATH=app_server_install_dir/lib:$LD_LIBRARY_PATH


安装负载平衡器插件前的配置

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

Procedure安装 SSL 可识别 Apache

开始之前

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

  1. 下载和解压缩 OpenSSL 源代码。

  2. 编译和生成 OpenSSL。

    如果已安装了 OpenSSL 0.9.7.e,则在 Linux 平台上不需要执行此步骤。

    输入以下命令:


    cd openssl-0.9.7e
    make
    make install

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

  3. 根据 Apache 的版本,请相应执行以下步骤:

    • 对于 Apache 1.3,请使用以下步骤将 Apache 配置为与 mod_ssl 一起使用:

      1. 解压缩 mod_ssl 源代码。

      2. cd mod_ssl-2.8.14–1.3.x

      3. ./configure –with-apache=../apache_1.3. x --with-ssl=../openssl-0.9.7e --prefix=install_path --enable-module=ssl --enable-shared=ssl --enable-rule=SHARED_CORE --enable-module=so

      在以上命令中,x 是 Apache 的版本号,install_path 是安装 Apache 的目录。

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

    • 对于 Apache 2.0,请配置源代码树:

      1. cd http-2.0_x

      2. 运行 ./configure --with-ssl= open_ssl_install_path --prefix= install_path --enable-ssl --enable-so

        在以上命令中,x 是 Apache 的版本号,open_ssl_install_path 是安装 OpenSSL 的目录,install_path 是安装 Apache 的目录。

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

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

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

      LIBS+= -licuuc -licui18n -lnspr4 -lpthread -lxerces-c 
      -lsupport -lnsprwrap -lns-httpd40
      LDFLAGS+= -L/appserver_installdir/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/appserver_installdir /lib -L/opt/sun/private/lib
    3. 设置环境变量 LD_LIBRARY_PATH。

      对于所有安装,请将此变量设置为:appserver_install_dir/lib

      对于 Java Enterprise System 安装,请将此变量设置为 appserver_install_dir/lib:opt/sun/private/lib

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

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

    通常,步骤如下:

    1. make

    2. make certificate(仅 Apache 1.3)

    3. make install

      命令 make certificate 需要安全密码。请记住此密码,因为启动安全 Apache 时需要它。

  6. 配置适合您的环境的 Apache。

Application Server 安装程序所作的修改

负载平衡器插件安装程序将必要文件解压缩至 Web Server 根目录下的以下目录中:

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

<VirtualHost machine_name:443>
##Addition for EE lb-plugin
LoadFile /usr/lib/libCstd.so.1
LoadModule apachelbplugin_module libexec/mod_loadbalancer.so
#AddModule mod_apachelbplugin.cpp
<IfModule mod_apachelbplugin.cpp> 
  config-file webserver_instance/conf/loadbalancer.xml
  locale en
</IfModule>
<VirtualHost machine_ip_address>
  DocumentRoot "webserver_instance/htdocs"
  ServerName server_name
</VirtualHost>
##END EE LB Plugin ParametersVersion 7

Procedure将 Apache 安全性文件配置为与负载平衡器一起使用

Apache Web Server 必须具有正确的安全性文件才能很好地与负载平衡器插件一起使用。

  1. apache_install_dir 下创建一个名为 sec_db_files 的目录。

  2. application_server_domain_dir/config/*.db 复制到 apache_install_dir/sec_db_files 中。

  3. 根据所使用的平台,请执行其他配置。

    • 在 Solaris 平台上:

      将路径 /usr/lib/mps/secv1 添加到 apache_install_dir/bin/apachectl 脚本中的 LD_LIBRARY_PATH 中。必须在 /usr/lib/mps 之前添加此路径。

    • 对于 Linux:

      将路径 /opt/sun/private/lib 添加到 apache_install_dir/bin/apachectl 脚本中的 LD_LIBRARY_PATH 中。必须在 /usr/lib 之前添加此路径。

    • 在 Microsoft Windows 上:

      1. 将新路径添加到 Path 环境变量中。

        单击“开始”->“设置”->“控制面板”->“系统”->“高级”->“环境变量”->“系统变量”。

        application_server_install_dir/bin 添加到 Path 环境变量中。

      2. 将环境变量 NSPR_NATIVE_THREADS_ONLY 设置为 1。

        在“环境变量”窗口中的“系统变量”下,单击“新建”。输入变量名 NSPR_NATIVE_THREADS_ONLY 和变量值 1。

      3. 重新启动计算机。

对 Microsoft IIS 的修改

要配置 Microsoft Internet Information 服务 (Microsoft Internet Information Services, IIS) 以使用负载平衡器插件,请修改 Windows Internet 服务管理器中的某些属性。Internet 服务管理器位于“控制面板”文件夹的“管理工具”文件夹中。

安装 Sun Java System Application Server 之后,请进行以下修改。

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_install_dir/bin 添加到系统的 PATH 环境变量中。

  7. 重新启动计算机。

  8. 停止然后启动 Web 服务器以使新设置生效。

    要停止 Web 服务器,请在此 Web 站点上单击鼠标右键,然后选择“停止”。要启动 Web 服务器,请在此 Web 站点上单击鼠标右键,然后选择“启动”。

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

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

自动配置的 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 

配置多个 Web 服务器实例

Sun Java System Application Server 安装程序不允许在单个计算机上安装多个负载平衡器插件。要在单个群集或多个群集中的单个计算机上安装多个带有负载平衡器插件的 Web 服务器,需要手动执行一些步骤来配置负载平衡器插件。

Procedure配置多个 Web 服务器实例

  1. 配置新的 Web Server 实例以使用负载平衡器插件。

    请按照对 Sun Java System Web Server 的修改使用 Apache Web Server安装中的步骤进行操作

  2. 复制 DTD 文件。

    sun-loadbalancer_1_1.dtd 从现有 Web 服务器实例的 config 目录复制到新实例的 config 目录中。

  3. 设置负载平衡器配置文件。执行以下操作之一:

    • 复制现有负载平衡器配置。

      使用现有负载平衡器配置,将 loadbalancer.xml 文件从现有 Web 服务器实例的 config 目录复制到新实例的 config 目录中。

    • 创建新的负载平衡器配置:

      1. 使用 asadmin create-http-lb-config 创建新的负载平衡器配置。

      2. 使用 asadmin export http-lb-config 将新配置导出到 loadbalancer.xml 文件中。

      3. 将此 loadbalancer.xml 文件复制到新 Web 服务器的 config 目录中。

        有关创建负载平衡器配置并将其导出到 loadbalancer.xml 文件的信息,请参见创建 HTTP 负载平衡器配置