httpd mod_proxy_balancer故障转移failonstatus - 透明切换

Pra*_*een 9 apache failover reverse-proxy mod-proxy mod-proxy-balancer

我使用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>
Run Code Online (Sandbox Code Playgroud)

目前,故障转移与一个故障完美配合.当活动节点发生故障时,用户会收到503错误,并且从下一个请求中,备用服务器将接管.

我甚至不希望一个请求失败.无法将mod_proxy故障转移到客户端并返回错误?如果活动节点出现故障,我希望mod_proxy为同一个请求尝试待机,而不仅仅是后续请求!

Dav*_*omb 3

我想您在 Apache HTTPd 邮件列表上提出了这个问题,但遗憾的是没有得到满意的答案。我在 ServerFault 中问了几乎相同的问题,所以我将它们放在一起。

https://serverfault.com/questions/414024/apache-httpd-workers-retry

  • 我已经与 httpd 邮件列表上的开发人员交谈过,他确认当前的代码库中尚未实现此功能。mod_proxy_balancer 内部的状态机无法重试 HTTP 错误,但只能在连接错误时重试。我尝试自己实现它,但它太复杂了,我很容易使代码库不稳定。所以我放弃了... (2认同)