19.5.3. 安装 mod_cluster 模块至 Apache HTTP 服务器或 JBoss Enterprise Web Server(ZIP 方式)
预备条件
- 要执行这个任务,您必须使用安装在 Red Hat 企业版 Linux 6 里的 Apache HTTP Server 或JBoss Enterprise Web Server,或者作为 JBoss EAP 6 可下载组件的独立 HTTP 服务器。
- 如果你需要在 Red Hat 企业版 Linux 6 里安装 Apache HTTP 服务器,请使用《Red Hat Enterprise Linux 6 部署指南》里的说明。
- 如果您需要安装作为 JBoss EAP 6 的可下载组件的独立的 HTTP 服务器,请参考 第 19.3.2 节 “安装 JBoss EAP 6 附带的 Apache HTTP 服务器(ZIP 方式)”。
- 如果你需要安装 JBoss Enterprise Web Server,请使用《JBoss Enterprise Web Server 安装指南》里的说明。
- 根据操作系统和架构从 Red Hat 客户入口 https://access.redhat.com 下载 Webserver Connecter Natives 软件包。这个软件包包含为操作系统预编译的 mod_cluster 的 web 服务器模块,这些模块位于
EAP_HOME/modules/system/layers/base/native/lib/httpd/modules
目录。etc/
目录包含一些配置文件示例,而share/
目录则包含一些补充文档。 - 您必须用管理员权限(root)登录。
注意
如果您使用的是 64 位的系统,mod_cluster 的 web 服务器模块将位于:
EAP_HOME/modules/system/layers/base/native/lib64/httpd/modules
。每次访问这些模块时您都必须使用这个路径。
过程 19.7. 安装 mod_cluster 模块
确定您的 Apache HTTP 服务器配置的位置。
根据您是否使用 Red Hat 企业版 Linux 的 Apache HTTP 服务器、JBoss EAP 6 是否包含作为可下载组件的独立 Apache HTTP 服务器、JBoss Enterprise Web Server 里是否有可用的 Apache HTTP 服务器, Apache HTTP 服务器配置文件的位置会有所不同。下面是这三种情况中的一种,在本节里都被称为 HTTPD_HOME。- Apache HTTP 服务器 -
/etc/httpd/
- JBoss EAP 6 Apache HTTP 服务器 - 根据您的系统架构需求选择的位置。
- JBoss Enterprise Web Server 的 Apache HTTP 服务器 -
EWS_HOME/httpd/
复制这些模块到 Apache HTTP 服务器的 modules 目录。
从解压的 Webserver Natives 归档的EAP_HOME/modules/system/layers/base/native/lib/httpd/modules
目录复制四个模块(以.so
结尾的文件)到HTTPD_HOME/modules/
目录。对于 JBoss Enterprise Web Server,请禁用
mod_proxy_balancer
模块。如果您使用 JBoss Enterprise Web Server,mod_proxy_balancer
默认是启用的。它和 mod_cluster 不兼容。要禁用它,请编辑HTTPD_HOME/conf/httpd.conf
并用#
注释下列加载模块的内容。下面的内容没有显示注释符号。LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
# LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
保存并关闭文件。配置 mod_cluster 模块。
Webserver Natives 归档包含一个mod_cluster.conf
示例文件(EAP_HOME/modules/system/layers/base/native/etc/httpd/conf
)。这个文件可用作模版或通过复制/编辑来创建HTTPD_HOME/httpd/conf.d/JBoss_HTTP.conf
文件。注意
这个文档里的习惯是使用JBoss_HTTP.conf
。这个配置文件如果保存在conf.d/
目录里,且扩展名为.conf
,它就会被加载。在配置文件里加入下列内容:LoadModule slotmem_module modules/mod_slotmem.so LoadModule manager_module modules/mod_manager.so LoadModule proxy_cluster_module modules/mod_proxy_cluster.so LoadModule advertise_module modules/mod_advertise.so
这会让 Apache HTTP 服务器自动加载mod_cluster
运行所需的模块。创建一个代理服务器 listener。
继续编辑HTTPD_HOME/httpd/conf.d/JBoss_HTTP.conf
并添加下列配置,用适合您系统的值替换调大写字母表示的值。Listen IP_ADDRESS:PORT <VirtualHost IP_ADDRESS:PORT> <Location /> Order deny,allow Deny from all Allow from *.MYDOMAIN.COM </Location> KeepAliveTimeout 60 MaxKeepAliveRequests 0 EnableMCPMReceive On ManagerBalancerName mycluster ServerAdvertise On </VirtualHost>
这些指令创建了一个新的虚拟服务器,它侦听IP_ADDRESS:PORT
,允许来自MYDOMAIN.COM
的连接,并将自己作为mycluster
负载平衡器进行广告。Apache Web Server 的文档会深入讨论这些指令。要学习ServerAdvertise
和EnableMCPMReceive
指令以及服务器广告的含义,请参考 第 19.5.5 节 “为启用 mod_cluster 的 Web 服务器配置服务器的 Advertisement 属性”。保存文件并退出。重新启动 Apache HTTP 服务器。
重启 Apache HTTP 服务器的方法取决于您是否使用 Red Hat 企业版 Linux 的 Apache HTTP 服务器或包含在 JBoss Enterprise Web Server 里的 Apache HTTP 服务器。请从下面两个方法里选择一个。Red Hat 企业版 Linux 6 的 Apache HTTP 服务器
运行下列命令:[root@host]#
service httpd restart
JBoss Enterprise Web Server 的 Apache HTTP 服务器
JBoss Enterprise Web Server 既可以运行在 Red Hat Enterprise Linux 也可以运行在 Microsoft Windows Server 上。两者重启 Apache HTTP 服务器的方法是不同的。Red Hat Enterprise Linux
在 Red Hat 企业版 Linux 里,JBoss Enterprise Web Server 将 Apache HTTP 服务器安装为服务。要重启 Apache HTTP 服务器,执行下面两个命令:[root@host ~]# service httpd stop
[root@host ~]# service httpd start
Microsoft Windows Server
用管理员权限执行下列命令:C:\> net stop httpd
C:\> net start httpd
结果
Apache HTTP 服务器现在已配置为负载平衡器,且可以和运行 JBoss EAP 6 的 mod_cluster
子系统一起工作。要使 JBoss EAP 6 可以意识到 mod_cluster,请参考 第 19.5.6 节 “配置 mod_cluster 工作节点”。