8

Tôi đang sử dụng mod_proxy_balancer để quản lý chuyển đổi dự phòng của máy chủ phụ trợ. Máy chủ phụ trợ có thể trả lại mã lỗi thay vì hết thời gian khi một số dịch vụ phụ trợ khác không thành công như NFS và chúng tôi cũng muốn các máy chủ đó được đánh dấu là các nút không thành công. Do đó chúng tôi đang sử dụng chỉ thị failonstatus.httpd mod_proxy_balancer failover failonstatus - chuyển đổi trong suốt

<Proxy balancer://avatar> 
    ProxySet failonstatus=503 
    BalancerMember http://active/ retry=30 
    # the hot standby 
    BalancerMember http://standby/ status=+H retry=0 
</Proxy> 

Hiện tại, chuyển đổi dự phòng hoạt động hoàn hảo với một trục trặc. Khi nút hoạt động không thành công, người dùng nhận được lỗi 503 và từ yêu cầu tiếp theo, máy chủ Chờ sẽ tiếp quản.

Tôi thậm chí không muốn một yêu cầu duy nhất thất bại. Không thể mod_proxy chuyển đổi dự phòng với ra bao giờ trở về một lỗi cho khách hàng? Nếu nút hoạt động không thành công, tôi muốn mod_proxy thử Standby cho cùng một yêu cầu và không chỉ từ yêu cầu tiếp theo!

Trả lời

3

Tôi nghĩ rằng bạn đã yêu cầu điều này trong danh sách gửi thư Apache HTTPd nhưng đáng tiếc là không nhận được câu trả lời thỏa đáng. Tôi đã hỏi gần như cùng một câu hỏi trong ServerFault vì vậy tôi đang tham gia cùng nhau.

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

+2

Tôi đã nói chuyện với một Dev trên mailing list httpd và ông khẳng định rằng tính năng này chưa được thực hiện tại các cơ sở mã hiện tại . Máy trạng thái bên trong mod_proxy_balancer không thể thử lại trên lỗi HTTP nhưng chỉ có thể làm như vậy trong trường hợp lỗi kết nối. Tôi đã cố gắng thực hiện nó bản thân mình nhưng nó quá phức tạp và tôi có thể dễ dàng làm cho các cơ sở mã không ổn định. Vì vậy, tôi đã từ bỏ ... – Praveen