要使用 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 的最新信息。