如果有人试图访问我的 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
Run Code Online (Sandbox Code Playgroud)
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 吗?
小智 2
正如评论中提到的,您不能为 404 指定错误文件,因为 HAProxy 永远不会生成 404。您必须使用类似 503 的内容,HAProxy 确实会发出该错误文件并具有可配置的错误文件。您的 204 文件可以按原样使用,只需在配置中用 503 替换 204 即可。