![当 Jboss 与 AJP 在两个不同的端口上作为集群运行时,Apache mod_proxy_ajp 如何工作?](https://linux22.com/image/548115/%E5%BD%93%20Jboss%20%E4%B8%8E%20AJP%20%E5%9C%A8%E4%B8%A4%E4%B8%AA%E4%B8%8D%E5%90%8C%E7%9A%84%E7%AB%AF%E5%8F%A3%E4%B8%8A%E4%BD%9C%E4%B8%BA%E9%9B%86%E7%BE%A4%E8%BF%90%E8%A1%8C%E6%97%B6%EF%BC%8CApache%20mod_proxy_ajp%20%E5%A6%82%E4%BD%95%E5%B7%A5%E4%BD%9C%EF%BC%9F.png)
我正在尝试让 Apache Web 服务器对 JBoss 集群进行负载平衡,但不幸的是,我不明白 mod_proxy_ajp 如何在负载平衡场景中工作,因为 JBoss 的两个实例都在不同的端口上运行 AJP。由于我仅使用其中一个端口指定我的 ProxyPass 规则,因此最终发生的情况是所有流量仅通过其中一个实例(我使用我的 ProxyPass 规则指定的实例)。
<Location /jconsole>
# somehow I need this to also load balance to port AJP localhost:8209
ProxyPass ajp://localhost:8109/jconsole
ProxyPassReverse ajp://localhost:8109/jconsole
</Location>
任何能得到的帮助都将十分感谢。
答案1
在这种情况下您需要配置一个平衡器。
<Proxy balancer://mycluster>
BalancerMember ajp://localhost:8109/jconsole
BalancerMember ajp://localhost:8110/jconsole
</Proxy>
<Location /jconsole>
ProxyPass balancer://mycluster/ stickysession=JSESSIONID|jsessionid nofailover=On
</Location>
可以在 Apache 文档中找到更多选项http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass。