Назад | Перейти на главную страницу

Настройте haproxy для возврата 204 для определенного соответствия ACL

Я хочу вернуть код ошибки HTTP 204, если кто-то попытается получить доступ к определенному пути на моем веб-сервере. Я мог бы настроить один из моих веб-серверов так, чтобы он возвращал ошибку 204 и указывал на него haproxy как на бэкэнд. Однако, поскольку никакая информация не отправляется, я решил, что это можно сделать из самого haproxy. Не нужно беспокоить мои настоящие веб-серверы.

Я попытался создать бэкэнд, который генерировал бы ошибку 204 следующим образом:

frontend ...
    ...
    acl is_always204 path_beg /thisone
    use_backend always204 if is_always204
    ...

backend always204
    errorfile 404 /etc/haproxy-shared/errors/204.http

Файл 204.http содержит:

HTTP/1.0 204 No Content Cache-Control: no-cache Connection: close Content-Type: image/png

Когда я запускаю haproxy, я получаю такую ​​ошибку:

parsing [/etc/haproxy/haproxy:51] : status code 404 not handled, error customization will be ignored.

Я думаю, что могу поступить неправильно. Может ли кто-нибудь предложить способ заставить haproxy возвращать 204 для данного совпадения acl?

Как упоминалось в комментариях, вы не можете указать файл ошибок для 404, поскольку HAProxy никогда не будет генерировать 404. Вы должны использовать что-то вроде 503, которое HAProxy действительно выдает и имеет настраиваемый файл ошибок. Ваш файл 204 можно использовать как есть, просто замените 503 на 204 в своей конфигурации.