我正在尝试让 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。