我使用apache2.4.6和tomcat8来实现负载均衡解决方案。
我想知道如果 apache 平衡器从一台服务器收到超时错误,它是否会将请求重定向到另一个平衡器成员。
比如apache向tomcat1发送一个请求,但是tomcat1在10秒内无法响应,apache会将这个请求重新发送给tomcat2吗?
以下是我对 apache 代理平衡器的配置。
<Proxy balancer://myCluster timeout=10 failontimeout=on>
BalancerMember http://server1:8080 route=tomcat1 loadfactor=1 timeout=10 retry=30
BalancerMember http://server2:8080 route=tomcat2 loadfactor=1 timeout=10 retry=30
ProxySet lbmethod=byrequests
# ProxySet stickysession=JSESSIONID
Order Deny,Allow
Deny from none
Allow from all
</Proxy>
答案1
我相信您可以通过使用第二个 tomcat 服务器作为热备用来实现此功能。Apache 中的 mod_proxy 支持此功能
您可以尝试以下配置并进行测试。
<Proxy balancer://myCluster timeout=10 failontimeout=on>
BalancerMember http://server1:8080 route=tomcat1 loadfactor=1 timeout=10 retry=30
BalancerMember http://server2:8080 route=tomcat2 loadfactor=1 timeout=10 retry=30 status=+H
ProxySet lbmethod=byrequests
# ProxySet stickysession=JSESSIONID
Order Deny,Allow
Deny from none
Allow from all
</Proxy>