16.7.2. 安装 Mod_proxy HTTP 连接器到 Apache HTTPD
概述
mod_proxy
是 Apache 提供的一个 load-balancing 模块。这个任务代表了一个简单的配置。关于更高级的配置或其他细节,请参考 Apache 的 mod_proxy
文档 https://httpd.apache.org/docs/2.2/mod/mod_proxy.html。关于从 JBoss EAP 6 角度来看的 mod_proxy
细节,请参考 第 16.7.1 节 “关于 Apache mod_proxy HTTP 连接器” 和 第 16.1.3 节 “HTTP 连接器概述”。
前提条件
- JBoss Enterprise Web Server 的 HTTPD 或 Apache HTTP 服务器都需要先安装。独立的 Apache HTTP 服务器在 Red Hat 客户门户 https://access.redhat.com 里是可以单独下载的。关于这个 HTTPD 的信息,请参考 第 16.3.2 节 “安装 JBoss EAP 6 附带的 Apache HTTPD(ZIP)”。
mod_proxy
模块需被安装。Apache HTTP 服务器通常带有mod_proxy
模块。对于 Red Hat 企业版 Linux,JBoss Enterprise Web Server 附带了 Apache HTTP 服务器。- 您需要
root
或管理员权限来修改 Apache HTTP 服务器的配置。 - 在这些例子里,我们假设 JBoss EAP 6 配置了 HTTP 或 HTTPS Web 连接器。这是 Web 子系统配置的一部分。关于配置 Web 子系统的信息,请参考 第 15.1 节 “配置 Web 子系统”。
启用 HTTPD 里的
mod_proxy
模块在HTTPD_HOME/conf/httpd.conf
文件里寻找下列行。如果没有,则在文件结尾添加它们。如果存在但是以注释符号(#)开始的,请删除这些符号。保存文件。通常这些模块都会存在且已启用。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加 non-load-balancing 代理。
Add the following configuration to yourHTTPD_HOME/conf/httpd.conf
file, directly beneath any other<VirtualHost>
directives you may have. Replace the values with ones appropriate to your set-up.这个例子使用了虚拟主机。请参考下一个步骤来使用默认的 HTTPD 配置。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在进行修改后,保存这个文件。添加 load-balancing 代理。
要将mod_proxy
用作负载平衡器,并将工作负载发送到多个 JBoss EAP 6 服务器,请添加下列配置到HTTPD_HOME/conf/httpd.conf
文件里。这个 IP 地址是虚构的。请用自己的值来替换它。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上面的例子都使用 HTTP 协议进行通讯。如果加载合适的mod_proxy
模块,您也可以使用 AJP 或 HTTPS 协议。详情请参考 http://httpd.apache.org/docs/2.2/mod/mod_proxy.html 里 Apache 的mod_proxy
文档。启用 Sticky Session。
Sticky sessions 表示如果客户请求最开始是转到专有的 JBoss EAP 6 节点,所有以后的请求都将发送到相同的节点,除非这个节点不可用。这通常是正确的行为。要为mod_proxy
启用 Sticky Session,请添加stickysession
参数到ProxyPass
语句里。这个例子也展示了一些其他的参数。更多信息请参考 Apache 的mod_proxy
文档:http://httpd.apache.org/docs/2.2/mod/mod_proxy.html。ProxyPass /MyApp balancer://mycluster stickysession=JSESSIONID lbmethod=bytraffic nofailover=Off
ProxyPass /MyApp balancer://mycluster stickysession=JSESSIONID lbmethod=bytraffic nofailover=Off
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重启 HTTPD。
重启 HTTPD 服务器以使修改生效。
结果
配置 HTTPD 使用 mod_proxy
以标准或负载平衡方式发送客户请求到 JBoss EAP 6 服务器或群集。要配置 JBoss EAP 6 响应这些请求,请参考 第 16.3.6 节 “配置 JBoss EAP 6 从外部 HTTPD 接受请求”。