所以我们正在运行一个由 Apache 2.2 进行负载平衡的 2 个以上后端服务器(恰好是 JBoss 服务器)的集群。有时,后端服务器可能会变得无响应(这意味着它们会等待很长时间才能回复请求,但不会立即关闭连接)。这自然会以 502 "Bad gateway"错误告终。我对负载平衡器的理解是,它应该进行故障转移并将请求重定向到其余实例。
我已经看到平衡器的一个节点可以进入错误状态,但永远无法强制将一个节点完全发送到该状态(即在遇到第一个 502 之后这样做)。我是否遗漏了某些东西,或者这只是我想要的功能?
哦,这是我的配置:
<Proxy balancer://s>
Order deny,allow
Allow from all
BalancerMember http://host1:8080/ route=h1 timeout=20 retry=40
BalancerMember http://host2:8080/ route=h2 timeout=20 retry=40
</Proxy>
# Distribute by Round Robin, use Sticky Sessions
ProxyPass / balancer://s/ stickysession=JSESSIONID lbmethod=byrequests nofailover=On
ProxyPassReverse / http://host1:8080/
ProxyPassReverse / http://host2:8080/
最好的事物,
塞巴斯蒂安
最佳答案
您指定 nofailover=On 这意味着它不会进行故障转移,因此会出现 502 错误。如果您希望它进行故障转移,它需要是 nofailover=Off,这意味着它应该进行故障转移。
关于apache2 - mod_proxy 超时 (502) 和故障转移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/862285/