Atualmente, estou reconfigurando o HAProxy usando o 1.5dev-17. O que eu gostaria de fazer é retornar um erro 404 quando não houver back-end para usar em uma solicitação específica.
Nossa configuração atual usa o default_backend para rotear para nossos servidores de aplicativos django, mas quando há muitas solicitações de análise (como um teste de caneta) que não correspondem a nenhum dos outros back-ends configurados, nossos servidores django ficam paralisados enquanto tentam para atender a essas solicitações inválidas, retornando eventualmente um 404.
Eu gostaria de servir o 404 do HAProxy em vez de delegar para os back-ends do django. Atualmente, estou conseguindo isso com um hack:
frontend www
...
default_backend nomatch
backend nomatch
errorfile 503 /var/www/http/404.http
E dentro do arquivo 404.http, defino o código de status 404 nos cabeçalhos. Isso funciona, mas parece muito errado. Existe uma maneira melhor de conseguir isso com o HAProxy? Ou devo usar um back-end regular e deixar que ele responda com um 404?
HTTP/1.0 404 Not Found
seguido por outros cabeçalhos, depois uma linha em branco e o <html>
conteúdo.