19.7.2. 安装 Mod_proxy HTTP 连接器到 Apache HTTP 服务器
概述
mod_proxy 是 Apache 提供的一个 load-balancing 模块。这个任务代表了一个简单的配置。关于更高级的配置或其他细节,请参考 Apache 的 https://httpd.apache.org/docs/2.2/mod/mod_proxy.html 上的 mod_proxy 文档。关于从 JBoss EAP 6 角度来看的 mod_proxy 细节,请参考 第 19.7.1 节 “关于 Apache mod_proxy HTTP 连接器” 和 第 19.1.3 节 “HTTP 连接器概述”。
预备条件
- JBoss Enterprise Web Server 的 httpd 或 Apache HTTP 服务器都需要先安装。独立的 Apache HTTP 服务器在 Red Hat 客户门户 里是可以单独下载的。关于这个 Apache HTTP 服务器的信息,请参考 第 19.3.2 节 “安装 JBoss EAP 6 附带的 Apache HTTP 服务器(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 子系统的信息,请参考 第 17.1 节 “配置 Web 子系统”。
启用 HTTPD 里的
mod_proxy模块在HTTPD_HOME/conf/httpd.conf文件里寻找下列行。如果没有,则在文件结尾添加它们。如果存在但是以注释符号(#)开始的,请删除这些符号。保存文件。通常这些模块都会存在且已启用。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加 non-load-balancing 代理。
添加下列配置到HTTPD_HOME/conf/httpd.conf文件里,直接放在其他<VirtualHost>指令下面。请用自己的配置来替换相关的值。这个例子使用了虚拟主机。请参考下一个步骤来使用默认的 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=OffCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重启 Web Server。
重启 Web 服务器,以使您的更改生效。
结果
配置 Apache HTTP 服务器使用 mod_proxy 以标准或负载平衡方式发送客户请求到 JBoss EAP 6 服务器或群集。要配置 JBoss EAP 6 响应这些请求,请参考 第 19.3.6 节 “配置 JBoss EAP 6 接受外部 Web 服务器的请求”。