Squid retry_on_error: códigos de estado y rutas alternativas
Use Squid retry_on_error dentro de su alcance documentado de estados y destinos alternativos, en lugar de tratarlo como un ajuste universal de repetición de solicitudes.
Hay una opción de Squid llamada retry_on_error, pero el nombre es más amplio que su interpretación útil. No significa que toda solicitud fallida se repita indefinidamente hasta que la página funcione.
En las versiones que admiten esta directiva, está desactivada de forma predeterminada. La lista de reintentos documentada es 403, 500, 501, 502, 503 y 504, y prueba la solicitud a través de otro destino que funcione. Esto es especialmente relevante en una jerarquía con rutas de reenvío alternativas. No es solo un reintento temporizado del mismo socket al mismo servidor.
Nombre primero el fallo
Un rechazo al conectar con un proxy, un fallo de autenticación del proxy, un error HTTP del origen y una respuesta cortada después de iniciarse la entrega no presentan la misma oportunidad de reintento. No espere que un solo ajuste trate los cuatro casos por igual.
Para una salida privada, decida también si una ruta alternativa es aceptable. Otro padre puede tener otra dirección pública de origen, otra política de autenticación u otra ubicación de red. El éxito a través de esa alternativa puede violar el motivo por el que se eligió el primer padre.
Las operaciones de la aplicación aportan otra preocupación: repetir una solicitud puede repetir su efecto. El cliente y el servidor necesitan una semántica de reintento adecuada, sobre todo para operaciones que crean o cambian datos. Un ajuste de proxy no sustituye el manejo a nivel de aplicación de resultados inciertos.
Lea la directiva para su versión exacta; la referencia enumera la disponibilidad y el comportamiento predeterminado. Tenga también presente los plazos de la solicitud y la espera total visible para el usuario. Un intento de reenvío adicional puede consumir el tiempo restante sin producir un resultado mejor.
Al investigar fallos intermitentes, registre el estado, el padre o destino elegido y la secuencia de intentos. De lo contrario, los reintentos pueden hacer que un problema recurrente de enrutamiento parezca un sitio web generalmente lento mientras ocultan la ruta que realmente falló.