发现当主服务器的应用程序响应500错误时,我们的Apache负载平衡器没有故障切换到热备用。
这就是我们如何进行代理设置
<Proxy balancer://hotspare> BalancerMember ajp://node1:8463 loadfactor=100 retry=30 BalancerMember ajp://node2:8463 status=+H retry=0 BalancerMember ajp://node3:8463 status=+H retry=0 ProxySet lbmethod=bytraffic </Proxy>
当node1被closures时,它只能真正的失败。 任何人都可以解释这种行为?
如果您希望在后端服务器返回HTTP错误代码(例如500)的情况下进行故障转移,则必须使用“ failonstatus ”选项。
参考可以在这里find: https : //httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass
failonstatus – HTTP状态码的单个或逗号分隔的列表。 如果设置,则当后端返回列表中的任何状态代码时,这将强制工人进入错误状态。 工作人员恢复行为与其他工作人员错误相同。 适用于Apache HTTP Server 2.2.17及更高版本。
否则只有在后端根本没有响应的情况下才会有故障转移(就像你之前提到过的那样)。