mod_proxy_balancer를 사용하여 백엔드 서버의 장애 조치를 관리하고 있습니다. 백엔드 서버는 NFS와 같은 일부 다른 백엔드 서비스가 실패 할 때 시간 초과 대신 오류 코드를 반환 할 수 있으며 이러한 서버가 실패한 노드로 표시되기를 원합니다. 따라서 우리는 failonstatus 지시어를 사용하고 있습니다.httpd mod_proxy_balancer failover 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 failover를 수행 하시겠습니까? 액티브 노드가 실패하면 mod_proxy가 후속 요청뿐만 아니라 동일한 요청에 대해 대기 모드를 시도하도록합니다!
당신이 요구하는 것을 수행 새 모듈이 있습니다 . mod_proxy_balancer 내부의 상태 머신은 HTTP 에러로 재 시도 할 수 없지만 연결 에러가 발생할 경우에만이를 수행 할 수 있습니다. 나 자신을 구현하려고했지만 너무 복잡하고 쉽게 코드베이스를 불안정하게 만들 수 있습니다. 그래서 나는 포기했다. – Praveen