负载平衡器插件安装程序将对 Web 服务器的配置文件进行一些修改。所作的更改取决于该 Web 服务器。此外,对于某些 Web 服务器,必须进行手动配置以使负载平衡器正常工作。
在运行支持的 Web 服务器的计算机上,负载平衡器插件可随 Sun Java System Application Server Enterprise Edition 一起安装,也可单独安装。有关安装过程的完整信息,请参见《Sun Java System Application Server Enterprise Edition 8.2 Installation Guide》中的第 1 章 “Installing Application Server Software”(如果使用独立的 Application Server)或《Sun Java Enterprise System 5 Installation Guide for UNIX》(如果使用 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 配置文件的所在位置。
NameTrans 条目在 obj.conf 中的显示顺序非常重要。安装程序会将 NameTrans 条目放在正确的位置,但是,如果要因其他目的而编辑 obj.conf,必须确保顺序仍然正确。尤其是,负载平衡器信息必须在 document-root 函数之前显示。有关 obj.conf 文件的更多信息,请参见《Sun Java System Web Server 7.0 Administrator’s Configuration File Reference》。
安装后,请按照设置 HTTP 负载平衡中所述配置负载平衡器。
要使用 Apache Web Server,必须在安装负载平衡器插件之前执行特定配置步骤。负载平衡器插件安装也将对 Apache Web Server 进行其他修改。安装插件后,您必须执行其他配置步骤。
在 Apache 1.3 上,当多个 Apache 子进程运行时,每个进程都有自己的负载平衡 Round Robin 序列。例如,如果有两个 Apache 子进程正在运行,并且负载平衡器插件对两个应用服务器实例进行负载平衡,则第一个请求将发送给实例 1,第二个请求也将发送给实例 1,而第三个请求将发送给实例 2,第四个请求也将发送给实例 2。系统将重复执行这种模式(实例 1、实例 1、实例 2、实例 2 等)。此行为可能与您预期的行为(即,实例 1、实例 2、实例 1、实例 2 等)不同。在 Sun Java System Application Server 中,用于 Apache 的负载平衡器插件将为每个 Apache 进程启动一个负载平衡器实例,从而创建一个独立的负载平衡序列。
如果使用 --with-mpm=worker 选项进行编译,则 Apache 2 将具有多线程行为。
对于 Apache Web Server,根据 Apache 的版本,您的安装必须满足最低要求。
使用 Apache 1.3 时,负载平衡器插件有以下要求:
openssl-0.9.8b(源代码)
mod_ssl-2.8.n-1.3.x(源代码),其中 n 代表用于 Apache 版本的正确 mod_ssl 版本,x 代表 Apache 版本
gcc-3.3-sol9-sparc-local 软件包(适用于 Solaris 9 SPARC)
gcc-3.3-sol9-intel-local 软件包(适用于 Solaris 9 x86)
预先安装的 gcc(适用于 Solaris 10)
flex-2.5.4a-sol9-sparc-local 软件包(适用于 Solaris 9 SPARC)
flex-2.5.4a-sol9-intel-local 软件包(适用于 Solaris 9 x86)
预先安装的 flex(适用于 Solaris 10)
这些软件源可以从 http://www.sunfreeware.com 获得。
有关 mod_ssl 的更多信息(包括要与 Apache 版本结合使用的正确 mod_ssl 版本),请参见 http://www.modssl.org。
此外,在编译 Apache 之前,请执行以下步骤:
在 Linux 2.1 平台上,在同一计算机上安装 Sun Java System Application Server。
在 Solaris 9 操作系统上,使用 pkgadd 安装 gcc 和 flex。请注意,pkgadd 需要超级用户权限。
在 Solaris 9 操作系统上,请确保 gcc 版本 3.3 和 make 位于 PATH 中,并且已安装 flex。
在 Solaris 10 操作系统上,在 Java Enterprise System 安装中,运行 OpenSSL 的 make 之前,请运行 mkheaders(在 Solaris SPARC 上,位于 /usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.3/install-tools 中;在 Solaris x86 上,位于 /usr/local/lib/gcc-lib/i386-pc-solaris2.9/3.3/install-tools 中)。
如果您在 Red Hat Enterprise Linux Advanced Server 2.1 上使用 gcc,则 gcc 的版本必须在 3.0 以上。
要使用 gcc 以外的 C 编译器,请设置 C 编译器的路径并使实用程序位于 PATH 环境变量中。例如,使用 sh shell:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:application-server-install-dir /lib
使用 Apache 2 时,负载平衡器插件有以下要求:
openssl-0.9.8b(源代码)
httpd-2.0.49(源代码)
gcc-3.3-sol9-sparc-local 软件包(适用于 Solaris 9 SPARC)
gcc-3.3-sol9-intel-local 软件包(适用于 Solaris 9 x86)
预先安装的 gcc(适用于 Solaris 10)
flex-2.5.4a-sol9-sparc-local 软件包(适用于 Solaris 9 SPARC)
flex-2.5.4a-sol9-intel-local 软件包(适用于 Solaris 9 x86)
预先安装的 flex(适用于 Solaris 10)
这些软件源可以从 http://www.sunfreeware.com 获得
此外,在编译 Apache 之前,请执行以下步骤:
在 Linux 平台上,在同一台计算机上安装 Sun Java System Application Server。
在 Solaris 9 操作系统上,使用 pkgadd 安装 gcc 和 flex。请注意,pkgadd 需要超级用户权限。
在 Solaris 9 操作系统上,请确保 gcc 版本 3.3 和 make 位于 PATH 中,并且已安装 flex。
在 Solaris 10 操作系统上,运行 OpenSSL 的 make 之前,请运行 mkheaders(在 Solaris SPARC 上,位于 /usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.3/install-tools 中;在 Solaris x86 上,位于 /usr/local/lib/gcc-lib/i386-pc-solaris2.9/3.3/install-tools 中)。
如果您在 Red Hat Enterprise Linux Advanced Server 2.1 上使用 gcc,则 gcc 的版本必须在 3.0 以上。
要使用 gcc 以外的 C 编译器,请在 PATH 环境变量中设置 C 编译器和 make 实用程序的路径。
安装用于 Apache 的负载平衡器插件前,请先安装 Apache Web Server。必须编译并生成 Apache 源代码以与 SSL 一起运行。本节介绍了成功编译 Apache Web Server 以运行负载平衡器插件所需的最低要求和高级步骤。 这些要求和步骤仅适用于本软件的 Solaris 和 Linux 版本。有关 Apache 的 Windows 版本的信息,请参见 Apache Web 站点。
此处包含的说明摘自 http://httpd.apache.org/docs 中的说明。有关安装 SSL 可识别 Apache 的详细说明,请参见此 Web 站点。
您必须已经下载并解压缩 Apache 软件。
下载并解压缩 OpenSSL 源(可以从 http://openssl.org 获得)。
编译并生成 OpenSSL。
如果已安装了 OpenSSL 0.9.7.e,则在 Linux 3.0 平台上不需要执行此步骤。对于 Linux 4.0,必须执行此步骤。
有关完整的安装说明,请参见解压缩 OpenSSL 所在目录中的名为 INSTALL 的文件。此文件包含有关将 OpenSSL 安装到用户指定位置的信息。
有关 OpenSSL 的更多信息,请参见 http://www.openssl.org/。
下载并解压缩 Apache。
Apache 可以从 http://httpd.apache.org 获得。
编译并生成 Apache。
根据 Apache 的版本,请相应执行以下步骤:
对于 Apache 1.3,请使用以下步骤将 Apache 配置为与 mod_ssl 一起使用:
解压缩 mod_ssl 源代码。
键入以下命令:
cd mod_ssl-2.8.n–1.3.x
键入以下命令:
./configure –with-apache=../apache_1.3.x --with-ssl=../openssl-0.9.8b --prefix=Apache-install-path --enable-module=ssl --enable-shared=ssl --enable-rule=SHARED_CORE --enable-module=so
在以上命令中,n 是要与 Apache 版本结合使用的正确 mod_ssl 版本,x 是 Apache 的版本号,Apache-install-path 是安装 Apache 的目录。
有关 mod_ssl 的更多信息(包括要与 Apache 版本结合使用的正确 mod_ssl 版本),请参见 http://www.modssl.org。
对于 Apache 2,请配置以下源代码树:
对于 Apache 2,请确保 Apache 的 ssl.conf 和 httpd.conf 文件包含正确的环境值。
在 ssl.conf 中,对于 VirtualHost default:port,将默认主机名和端口分别替换为安装有 Apache 2 的本地系统的主机名以及服务器的端口号。
如果不进行此更改,则负载平衡器将无法正常工作。在 Solaris 上,Apache 可能无法启动;在 Linux 上,HTTPS 请求可能无法执行。
在 ssl.conf 中,对于 ServerName www.example.com:443,将 www.example.com 替换为安装有 Apache 2 的本地系统的主机名。
如果不进行此更改,则会在安装了安全性证书的情况下启动 Apache 时,出现以下警告:
[warn] RSA server certificate CommonName (CN) hostname does NOT match server name! |
有关安装 Apache 2 证书的更多信息,请参见为 Apache 2 创建安全性证书。
在 httpd.conf 中,对于 ServerName www.example.com:80,将 www.example.com 替换为安装有 Apache 2 的本地系统的主机名。
如果不进行此更改,则会在启动 Apache 时出现以下警告:系统无法确定服务器的全限定域名,并且存在重叠的 VirtualHost 条目。
|
如果以超级用户身份安装 Apache,请务必阅读 apache-install-location/conf/httpd.conf 中有关配置“用户和组”的说明。Apache 会以 httpd.conf 中所述的用户身份运行。要在启动 Apache 时能够初始化负载平衡器插件,loadbalancer.xml 文件和 sun-loadbalancer_1_1.dtd 文件(位于 apache-install-location/conf 中)必须具有与此用户相对应的文件权限。
对于 Linux 2.1 上的 Apache,编译前请执行以下操作:
打开 src/MakeFile 并找到自动生成部分的结尾处。
在自动生成部分之后的前四行后面添加以下行:
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
设置环境变量 LD_LIBRARY_PATH。
进行独立安装时,将其设置为 Application Server: install-dir/lib。
进行 Java Enterprise System 安装时,将其设置为 Application Server: install-dir/lib:opt/sun/private/lib。
如果使用的是 Solaris 9,请将 /usr/local/lib 添加到 LD_LIBRARY_PATH 中。
按照适用于您所使用的版本的安装说明编译 Apache。
有关更多信息,请参见 http://httpd.apache.org/
通常,执行步骤为:
命令 make certificate 需要安全密码。请记住此密码,因为启动安全 Apache 时需要它。
负载平衡器插件安装程序会将所需的文件提取到 Web Server 根目录下的某个目录中:
对于 Apache 1.3,此目录为 libexec。
对于 Apache 2,此目录为 modules 。
它将以下条目添加到 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
请注意,对于 Apache 2,模块为 mod_apache2lbpblugin.cpp。
Apache Web Server 必须具有正确的安全文件才能使用负载平衡器插件。负载平衡器依赖于需要这些安全数据库文件的 NSS(Network Security Service,网络安全服务)库。您需要从 Application Server 获取这些安全数据库文件,因此必须将 Application Server 安装在 Web Server 可以访问的位置。
在 Apache-install-dir 下创建一个名为 sec_db_files 的目录。
将安全数据库文件从 Application Server 复制到所创建的目录中。
将 domain-dir/config/*.db 复制到 Apache-install-dir/sec_db_files。
根据所使用的平台,请执行其他配置。
在 Solaris 平台上,对于 Java Enterprise System 安装,执行以下操作:
将路径 /usr/lib/mps/secv1 添加到 Apache-install-dir/bin/apachectl 脚本的 LD_LIBRARY_PATH 中。此路径必须添加在 /usr/lib/mps 之前。
在 Linux 平台上,对于 Java Enterprise System 安装,执行以下操作:
将路径 /opt/sun/private/lib 添加到 Apache-install-dir/bin/apachectl 脚本的 LD_LIBRARY_PATH 中。此路径必须添加在 /usr/lib 之前。
对于 Microsoft Windows:
为了在 Apache 上支持 HTTPS 请求,需要执行以下步骤。
有关在 Apache 上设置安全性证书的详细信息,请参见 http://http.apache.org/docs/2.2/ssl/ssl_faq.html 和 http://www.modssl.org/docs/2.8/ssl_faq.html 中的说明。以下过程摘自这些 Web 站点。
转至相应的 OpenSSL 目录:
如果使用的是 Solaris 10,请使用预先安装的 OpenSSL 来创建证书。cd /usr/sfw/bin
如果使用的是 Solaris 9 或 Linux,请转至安装 OpenSSL 的目录。您还应当按照安装 SSL 可识别 Apache中的说明,已经针对 OpenSSL 运行了 configure 和 make。
设置环境变量 OPENSSL_CONF=OpenSSL-installation-directory/apps/openssl.cnf。
通过执行以下命令,创建服务器证书和密钥:
openssl req -new -x509 -keyout newreq.pem -out newreq.pem -days 365
当系统要求提供通用名称时,请提供计划运行 Apache 所用的主机名。对于所有其他提示,请输入满足您所有特定要求的值。
此命令会创建 newreq.pem。
从运行 openssl 命令的位置打开新创建的 newreq.pem。
复制以 BEGIN CERTIFICATE 开始并以 END CERTIFICATE 结束的行,并将其粘贴在 Apache-install-dir/conf/ssl.crt/server.crt 中。例如:
-----BEGIN CERTIFICATE----- .... ... -----END CERTIFICATE----- |
复制以 BEGIN RSA PRIVATE KEY 开始并以 END RSA PRIVATE KEY 结束的行,并将其粘贴在 Apache-install-dir/conf/ssl.key/server.key 中。例如:
-----BEGIN RSA PRIVATE KEY----- ... ... ... -----END RSA PRIVATE KEY----- |
确保 Apache-install-dir/conf/ssl.conf 中的变量 SSLCertificateKeyFile 和 SSLCertificateFile 具有正确的值。
确保 ServerName 并非为 www.example.com。ServerName 应当为运行 Apache 所用的实际主机名,从而与您在创建服务器证书和密钥时输入的通用名称相匹配。
通常,应当使用安装 Application Server 时所用的用户身份启动 Apache。在以下情况下,您必须以超级用户身份启动 Apache:
如果您是 Java Enterprise System 用户。
如果您使用的端口号小于 1024。
如果 Apache 运行时所用的用户身份不同于启动时所用的用户身份。
要以 SSL 模式启动 Apache,请使用以下命令之一:
apachetl startssl 或 apachetl -k start -DSSL
如果需要,请查阅 Apache Web 站点以获得有关启动 Apache Server 的最新信息。
要配置 Microsoft Internet 信息服务 (Microsoft Internet Information Services, IIS) 以使用负载平衡器插件,请修改 Windows Internet 服务管理器中的某些属性。Internet 服务管理器位于“控制面板”文件夹的“管理工具”文件夹中。
安装 Sun Java System Application Server 之后,请进行以下修改。
打开 Internet 服务管理器。
选择要为其启用此插件的 Web 站点。
此 Web 站点通常名为“默认 Web 站点”。
在此 Web 站点上单击鼠标右键,并选择“属性”以打开“属性”记事本。
按照以下步骤,添加一个新的 ISAPI 过滤器:
创建并配置新的虚拟目录:
将 sun-passthrough.dll 文件的路径、Application Server install-dir/bin 以及 Application Server install-dir/lib 添加到系统的 PATH 环境变量中。
对于 IIS 6.0 用户,请使用以下步骤将负载平衡器 Web 服务扩展配置为在 IIS 6 中运行:
对于 IIS 6.0 用户,请创建文件 C:\inetput\wwwroot\sun-passthrough\lb.log,并为组 IIS_WPG 提供对此文件的 NTFS 写入和修改权限。
由于 IIS 6.0 以“工作进程隔离模式”运行,因此它会使用组 IIS_WPG 的安全权限运行 IIS 服务器。
对于所有 IIS 用户,请重新启动计算机。
验证 Web Server、负载平衡器插件和 Application Server 是否运行正常。
在 Web 浏览器中键入以下地址,以访问此 Web 应用程序的上下文根:http://web-server-name/web-application,其中 web-server-name 是 Web Server 的主机名或 IP 地址,web-application 是在 C:\Inetpub\wwwroot\sun-passthrough\sun-passthrough.properties 文件中列出的上下文根。
ISAPI 过滤器状态应当为绿色。要检查过滤器状态,请访问此 Web 站点的 "Properties" 笔记簿,并单击 "ISAPI Filters" 选项卡。如果状态不为绿色,请尝试向 IIS HTTP 端口发送任一 HTTP 请求。如果请求失败,则表明情况确实如此。请重新检查 ISAPI 过滤器的状态。
安装程序会在 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 |