В настоящее время я переконфигурирую HAProxy с использованием 1.5dev-17. То, что я хотел бы сделать, это вернуть ошибку 404, когда нет никакого бэкэнда, чтобы использовать для определенного запроса.
Наша текущая конфигурация использует default_backend для маршрутизации на наши серверы приложений django, но при наличии большого количества пробных запросов (например, pen-test), которые не соответствуют ни одному из других сконфигурированных backends, наши серверы django останавливаются при попытке обслуживать эти недействительные запросы, в конечном итоге возвращая 404.
Я бы хотел обслуживать 404 от HAProxy, а не делегировать бэкэндам django. В настоящее время я достигаю этого с помощью взлома:
frontend www
...
default_backend nomatch
backend nomatch
errorfile 503 /var/www/http/404.http
И в файле 404.http я установил код состояния 404 в заголовках. Это работает, но чувствует себя очень неправильно. Есть ли лучший способ добиться этого с помощью HAProxy? Или я должен использовать обычный бэкэнд и просто позволить этой ручке отвечать 404?
HTTP/1.0 404 Not Found
За @JasonFloyd следуют другие заголовки, затем пустая строка, затем <html>
содержимое.