2012-06-18 28 views
8

我正在使用mod_proxy_balancer來管理後端服務器的故障轉移。後端服務器可能會返回錯誤代碼,而不是在其他後端服務發生故障時(例如NFS)超時,我們希望這些服務器也被標記爲失敗節點。因此我們正在使用failonstatus指令。httpd mod_proxy_balancer故障轉移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爲同一請求嘗試備用,而不僅僅是從後續請求中獲取!

回答

3

我想你在Apache HTTPd郵件列表上問過這個問題,但可惜沒有得到滿意的答案。我在ServerFault中提出了幾乎相同的問題,所以我將它們一起加入。

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

+2

我對你們所說的httpd郵件列表上的開發,他證實了此功能尚未在當前代碼庫實現了一個新的模塊。 mod_proxy_balancer中的狀態機不能重試HTTP錯誤,但只能在連接錯誤的情況下重試。我試圖自己實現它,但它太複雜了,我可以很容易地使代碼庫變得不穩定。所以我放棄了... – Praveen