22.8. Apache mod_proxy HTTP 连接器


Apache mod_proxy 是一个 HTTP 连接器,它支持通过 AJP、HTTP 和 HTTPS 协议的连接。mod_proxy 可以在负载均衡或非负载均衡配置中配置,并支持粘性会话的概念。

mod_proxy 模块要求 JBoss EAP 在 undertow 子系统中配置 HTTP、HTTPS 或 AJP 侦听器,具体取决于您计划使用的协议。

注意

mod_cluster 是 mod_proxy 的高级负载平衡器,是推荐的 HTTP 连接器。mod_cluster 提供 mod_proxy 的所有功能,以及额外的功能。与 JBoss EAP mod_cluster HTTP 连接器不同,Apache mod_proxy HTTP 连接器不知道服务器或服务器组上部署的状态,并且无法相应地调整其工作的位置。

如需更多信息,请参阅 Apache mod_proxy 文档

22.8.1. 在 Apache HTTP 服务器中配置 mod_proxy

安装 JBoss Core Services Apache HTTP Server 或使用 JWS 时,已包括 mod_proxy 模块,默认会被加载。

注意

从版本 3.1.0 开始,Apache HTTP 服务器不再发布 JWS。

请参阅以下相应的部分来配置基本 负载平衡 或非 负载平衡 代理。这些步骤假定您已导航到 Apache HTTP 服务器的 httpd/ 目录,这将因您的平台而异。如需更多信息,请参阅 JBoss Core Services Apache HTTP Server 安装指南中的您的平台 的安装说明。这些步骤还假定已在 JBoss EAP undertow 子系统中配置了必要的 HTTP 侦听器。

注意

红帽客户还可以在红帽客户门户网站上使用 Load Balancer Configuration Tool 来快速为 mod_proxy 和其他连接器生成最佳配置模板。请注意,您必须登录才能访问此工具。

添加非负载平衡代理

在您的 conf/httpd.conf 文件中添加以下配置,直接添加到您可能具有的任何其他 &lt ;VirtualHost > 指令下。将值替换为适合您的设置的值。

<VirtualHost *:80>
# Your domain name
ServerName YOUR_DOMAIN_NAME

ProxyPreserveHost On

# The IP and port of JBoss
# These represent the default values, if your httpd is on the same host
# as your JBoss managed domain or server

ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

# The location of the HTML files, and access control information
DocumentRoot /var/www
<Directory /var/www>
Options -Indexes
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Copy to Clipboard Toggle word wrap
添加负载平衡代理
注意

默认 Apache HTTP 服务器配置禁用了 mod_proxy_balancer.so 模块,因为它与 mod_cluster 不兼容。要完成此任务,您需要加载此模块并禁用 mod_cluster 模块。

要将 mod_proxy 用作负载平衡器,并将工作发送到多个 JBoss EAP 实例,请将以下配置添加到 conf/httpd.conf 文件中:示例 IP 地址是虚构的。使用适合您的环境的值替换它们。

<Proxy balancer://mycluster>

Order deny,allow
Allow from all

# Add each JBoss Enterprise Application Server by IP address and port.
# If the route values are unique like this, one node will not fail over to the other.
BalancerMember http://192.168.1.1:8080 route=node1
BalancerMember http://192.168.1.2:8180 route=node2
</Proxy>

<VirtualHost *:80>
 # Your domain name
 ServerName YOUR_DOMAIN_NAME

 ProxyPreserveHost On
 ProxyPass / balancer://mycluster/

 # The location of the HTML files, and access control information DocumentRoot /var/www
 <Directory /var/www>
  Options -Indexes
  Order allow,deny
  Allow from all
 </Directory>

</VirtualHost>
Copy to Clipboard Toggle word wrap

以上示例都使用 HTTP 协议进行通讯。如果您加载适当的 mod_proxy 模块,您可以改为使用 AJP 或 HTTPS 协议。如需了解更多详细信息,请参阅 Apache mod_proxy 文档

启用粘性会话

粘性会话 表示,如果客户端请求最初发送到特定的 JBoss EAP worker,则将来的所有请求都将发送到同一工作程序,除非它不可用。这几乎总是推荐的行为。

要为 mod_proxy 启用粘性会话,请将 stickysession 参数添加到 ProxyPass 语句中。

ProxyPass / balancer://mycluster stickysession=JSESSIONID
Copy to Clipboard Toggle word wrap

您可以为 ProxyPass 语句指定额外的参数,如 lbmethodnofailover。有关可用参数的更多信息,请参阅 Apache mod_proxy 文档

22.8.2. 配置 JBoss EAP 与 mod_proxy 通信

JBoss EAP undertow 子系统需要指定侦听器,才能接受来自的请求并将回复发回到外部 Web 服务器。根据您要使用的协议,您可能需要配置侦听器。

JBoss EAP 默认配置中配置了 HTTP 侦听器。如果您使用一个默认高可用性配置 hafull-ha,则也预配置了 AJP 侦听器。

具体步骤请参阅 接受来自外部 Web 服务器的请求

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat