![使用 apache2 mod_proxy(_balancer) 进行 3+3 tomcat 故障转移配置](https://linux22.com/image/656675/%E4%BD%BF%E7%94%A8%20apache2%20mod_proxy(_balancer)%20%E8%BF%9B%E8%A1%8C%203%2B3%20tomcat%20%E6%95%85%E9%9A%9C%E8%BD%AC%E7%A7%BB%E9%85%8D%E7%BD%AE.png)
我们有 3 个活动的 Tomcat 实例,负载应该在它们之间均匀分布(通过 jvmroute、ajp 实现粘性会话)。
我们还运行了 3 个故障转移 Tomcat 实例。如果 3 个活动实例中的一个发生故障,则 3 个故障转移实例中的一个将接管。
我想要使用带有负载平衡模块的 Apache2 来配置负载平衡和故障转移。
是否可以仅在一个 Apache2 实例内实现此目的?
我考虑过下面这样的配置,但我不知道它是否可行,也不知道是否建议这样做。
<Proxy balancer://Group1>
BalancerMember ajp://destination1 route=core1
BalancerMember ajp://destination4 route=core1 status=+H
</Proxy>
<Proxy balancer://Group2>
BalancerMember ajp://destination1 route=core2
BalancerMember ajp://destination4 route=core2 status=+H
</Proxy>
<Proxy balancer://Group3>
BalancerMember ajp://destination1 route=core3
BalancerMember ajp://destination4 route=core3 status=+H
</Proxy>
<Proxy balancer://loadbalancing>
BalancerMember balancer://Group1 route=core1
BalancerMember balancer://Group2 route=core2
BalancerMember balancer://Group3 route=core3
</Proxy>
ProxyPass / balancer://loadbalancing/ stickysession=JSESSIONID|jsessionid nofailover=On
ProxyPassReverse / balancer://loadbalancing/ nofailover=On
答案1
它基本上可以工作 - 但似乎不可能使用负载均衡器目标范围内代理人阻止 - 因此,http://本地主机必须使用。
<Proxy balancer://Group1>
ProxySet failonstatus=503
BalancerMember ajp://destination1 route=core1 ping=10
BalancerMember ajp://destination4 route=core1 ping=10 status=+H
</Proxy>
<Proxy balancer://Group2>
ProxySet failonstatus=503
BalancerMember ajp://destination2 route=core2 ping=10
BalancerMember ajp://destination5 route=core2 ping=10 status=+H
</Proxy>
<Proxy balancer://Group3>
ProxySet failonstatus=503
BalancerMember ajp://destination3 route=core3 ping=10
BalancerMember ajp://destination6 route=core3 ping=10 status=+H
</Proxy>
<Proxy balancer://loadbalancing>
ProxySet failonstatus=503
BalancerMember http://localhost/Group1 route=core1 ping=10
BalancerMember http://localhost/Group2 route=core2 ping=10
BalancerMember http://localhost/Group3 route=core3 ping=10
</Proxy>
ProxyPass /Group1 balancer://Group1
ProxyPassReverse /Group1 balancer://Group1
ProxyPass /Group2 balancer://Group2
ProxyPassReverse /Group2 balancer://Group2
ProxyPass /Group3 balancer://Group3
ProxyPassReverse /Group3 balancer://Group3
ProxyPass / balancer://loadbalancer/ stickysession=JSESSIONID|jsessionid nofailover=on
ProxyPassReverse / balancer://loadbalancer/ nofailover=on