当后台服务器(后端)发送HTTP 503代码时,我希望haproxy使用自己的503文档页面。 可能吗?
已经看到像“监测失败”的情况,但不知道如何将其添加到前端。
您可以使用errorfile指令,然后使用自定义的.http文本文件。 举个例子:
errorfile 503 /etc/haproxy/errors/503-mycustom.http
该文件的内容将是这样的:
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>
错误文件指令也可以是特定于后端的。
如果节点在线,则“错误文件”设置不能用于更改由HAProxy发送的响应。 当所有节点脱机时,此设置仅影响HAProxy。
理解这个关键字不是要重写服务器返回的错误,而是HAProxy检测到并返回的错误。 这就是为什么支持的错误列表限于一个小集。
有一些你可以做的脏东西。 您可以阻止响应503,这将导致返回您可以构build错误页面的自定义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
希望它有帮助(即使是8个月后)。