Actualmente estoy reconfigurando HAProxy usando 1.5dev-17. Lo que me gustaría hacer es devolver un error 404 cuando no hay un back-end para usar para una solicitud en particular.
Nuestra configuración actual utiliza default_backend para enrutar a nuestros servidores de aplicaciones django, pero cuando hay muchas solicitudes de sondeo (como una prueba de lápiz) que no coinciden con ninguno de los otros backends configurados, nuestros servidores django se detienen mientras intentan para atender estas solicitudes no válidas, eventualmente devolviendo un 404.
Me gustaría servir el 404 desde HAProxy en lugar de delegarlo a los backends de django. Actualmente estoy logrando esto con un truco:
frontend www
...
default_backend nomatch
backend nomatch
errorfile 503 /var/www/http/404.http
Y dentro del archivo 404.http configuré el código de estado 404 en los encabezados. Esto funciona, pero se siente muy mal. ¿Hay una mejor manera de lograr esto con HAProxy? ¿O debería usar un backend normal y dejar que el controlador responda con un 404?
HTTP/1.0 404 Not Found
seguido de algunos otros encabezados, luego una línea en blanco, luego el <html>
contenido.