当 Jboss 与 AJP 在两个不同的端口上作为集群运行时,Apache mod_proxy_ajp 如何工作?

当 Jboss 与 AJP 在两个不同的端口上作为集群运行时,Apache mod_proxy_ajp 如何工作?

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

相关内容