2012-06-18 12 views
8

Estoy usando mod_proxy_balancer para gestionar la migración tras error de los servidores de fondo. Los servidores de fondo pueden devolver un código de error en lugar de un tiempo de espera cuando falla otro servicio de fondo como NFS y queremos que dichos servidores también se marquen como nodos fallidos. Por lo tanto, estamos utilizando la directiva failonstatus.httpd mod_proxy_balancer failover failonstatus - switching transparente

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

Actualmente, la conmutación por error funciona perfectamente con una falla. Cuando el nodo activo falla, el usuario obtiene un error 503 y, a partir de la siguiente solicitud, el servidor en espera toma el control.

No quiero que falle una sola solicitud. ¿No puede conmutar por error mod_proxy sin devolver el error al cliente? Si el nodo activo falla, quiero que mod_proxy pruebe el Standby para la misma solicitud y no solo de la solicitud subsiguiente.

Respuesta

3

Creo que ha preguntado esto en la lista de correo Apache HTTPd, pero lamentablemente no obtuvo una respuesta satisfactoria. He hecho casi la misma pregunta en ServerFault, así que los uniré.

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

+2

He hablado con un Dev en la lista de correo httpd y confirmó que esta característica no se ha implementado en la base de código actual . La máquina de estado dentro de mod_proxy_balancer no puede volver a intentar el error de HTTP, pero solo puede hacerlo en caso de error de conexión. Intenté implementarlo yo mismo, pero es demasiado complicado y puedo hacer que la base del código sea inestable. Entonces me di por vencido ... – Praveen