如果有人尝试访问我的 Web 服务器上的特定路径,我想返回 HTTP 204 错误代码。我可以将我的一个网络服务器设置为返回 204 错误并将 haproxy 指向它作为后端。但是,由于没有发送任何信息,我认为这应该可以从 haproxy 本身完成。无需打扰我的实际 Web 服务器。
我尝试创建一个会生成 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 为给定的 acl 匹配返回 204 吗?
正如评论中提到的,您不能为 404 指定错误文件,因为 HAProxy 永远不会生成 404。您必须使用类似 503 的内容,HAProxy 确实会发出该错误文件并具有可配置的错误文件。您的 204 文件可以按原样使用,只需在配置中将 503 替换为 204。