Ich konfiguriere gerade HAProxy mit 1.5dev-17 neu. Ich würde gerne einen 404-Fehler zurückgeben, wenn für eine bestimmte Anfrage kein Backend zur Verfügung steht.
Unsere aktuelle Konfiguration verwendet das default_backend, um zu unseren Django-App-Servern zu routen. Wenn jedoch eine ganze Reihe von Testanforderungen (wie ein Pen-Test) mit keinem der anderen konfigurierten Backends übereinstimmen, werden unsere Django-Server beim Versuch angehalten um diese ungültigen Anforderungen zu bedienen und schließlich eine 404 zurückzugeben.
Ich möchte den 404 von HAProxy bedienen, anstatt ihn an die Django-Backends zu delegieren. Ich erreiche dies derzeit mit einem Hack:
frontend www
...
default_backend nomatch
backend nomatch
errorfile 503 /var/www/http/404.http
Und innerhalb der 404.http-Datei setze ich den 404-Statuscode in den Headern. Das funktioniert, fühlt sich aber sehr falsch an. Gibt es einen besseren Weg, dies mit HAProxy zu erreichen? Oder sollte ich ein reguläres Backend verwenden und dieses mit einem 404 beantworten lassen?
HTTP/1.0 404 Not Found
gefolgt von einigen anderen Überschriften , dann eine leere Zeile, dann der <html>
Inhalt.