Я хочу вернуть код ошибки 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 в своей конфигурации.