Mar*_*cin 22 haproxy http-status-code
当后端服务器(后端)发送 HTTP 503 代码时,我希望 haproxy 使用它自己的 503 文档页面。是否可以?
见过类似“监控失败”的情况,但不知道如何将其添加到前端。
Kyl*_*ndt 24
您可以使用该errorfile指令,然后使用自定义.http文本文件。例如:
errorfile 503 /etc/haproxy/errors/503-mycustom.http
Run Code Online (Sandbox Code Playgroud)
文件的内容将类似于:
HTTP/1.0 503 Service Unavailable
Cache-Control: no-cache
Connection: close
Content-Type: text/html
<html>
<head>
<title>RARRR!!!!!</title>
</head>
<body style="font-family:Arial,Helvetica,sans-serif;">
<div style="margin: 0 auto; width: 960px;">
<h2 >RAWR RAWR RAWR</h2>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
该errorfile指令也可以特定于后端。
如果节点在线,则“errorfile”设置不能用于更改 HAProxy 发送的响应。此设置仅在所有节点都离线时影响 HAProxy。
重要的是要理解这个关键字并不是要重写服务器返回的错误,而是由 HAProxy 检测和返回的错误。这就是为什么支持的错误列表仅限于一小部分的原因。
你可以做一些肮脏的事情。您可以阻止响应 503,这将导致返回自定义 502 错误,您可以为其构建错误页面。但是,请记住,haproxy 必须返回 502(无效响应)的任何原因都将返回相同的内容。
基本上它就像“rspdeny ^HTTP/1.1 503”结合“errorfile 502”一样简单。
我们网站的一部分运行在旧系统上,我最终使用了以下内容:
errorfile 502 /etc/haproxy/errors/502.http
acl is_internal_error status ge 500
rspideny . if is_internal_error
Run Code Online (Sandbox Code Playgroud)
希望它有所帮助(即使是 8 个月后)。
| 归档时间: |
|
| 查看次数: |
31699 次 |
| 最近记录: |