我正在使用mod_proxy_balancer来管理后端服务器的故障转移。后端服务器可能会返回错误代码,而不是在某些其他后端服务失败时(例如NFS)超时,我们希望此类服务器也被标记为失败的节点。因此我们使用的是failonstatus指令。
<Proxy balancer://avatar>
ProxySet failonstatus=503
BalancerMember http://active/ retry=30
# the hot standby
BalancerMember http://standby/ status=+H retry=0
</Proxy>
目前,故障转移与一个故障完美配合。当活动节点发生故障时,用户会收到503错误,并且从下一个请求中,备用服务器将接管。
我甚至不希望单个请求失败。无法将mod_proxy故障转移到客户端并返回错误?如果活动节点出现故障,我希望mod_proxy为同一请求尝试待机,而不仅仅是后续请求!
答案 0 :(得分:3)
我想你在Apache HTTPd邮件列表上问了这个问题,但遗憾的是没有得到满意的答案。我在ServerFault中问了几乎相同的问题,所以我将它们加在一起。
https://serverfault.com/questions/414024/apache-httpd-workers-retry
答案 1 :(得分:1)
有一个新模块可以完成您的要求 https://httpd.apache.org/docs/2.4/mod/mod_proxy_hcheck.html