HAProxy 2.0.5:无法将 HTX 中的消息转换为 HTTP 返回代码 503

HAProxy 2.0.5:无法将 HTX 中的消息转换为 HTTP 返回代码 503

我很抱歉给您带来不便,因为我对 HAProxy 还很陌生,现在我遇到了一个问题,虽然这可能不是什么大问题,但由于我对这个工具还很陌生,所以我不知道如何解决它。

我之前使用的是 HAProxy 1.8.8 版,现在升级到 2.0.5 版,之前/etc/haproxy/haproxy.cfg在 HAProxy 1.8.8 版上可以正常工作,但现在在 HAProxy 新版本 2.0.5 上却无法正常工作。从日志中/var/log/haproxy.log我收到此错误消息

Aug 30 19:59:21 haproxy2002 haproxy[2726]: [ALERT] 241/195921 (2726) : config: frontend 'http': Unable to convert message in HTX for HTTP return code 503.
Aug 30 19:59:21 haproxy2002 haproxy[2726]: [ALERT] 241/195921 (2726) : config: backend 'video-upload': Unable to convert message in HTX for HTTP return code 503.
Aug 30 19:59:21 haproxy2002 haproxy[2726]: [ALERT] 241/195921 (2726) : config: backend 'video-upload-merchant': Unable to convert message in HTX for HTTP return code 503.
Aug 30 19:59:21 haproxy2002 haproxy[2726]: [ALERT] 241/195921 (2726) : config: backend 'video-upload-premium': Unable to convert message in HTX for HTTP return code 503.
Aug 30 19:59:21 haproxy2002 haproxy[2726]: [ALERT] 241/195921 (2726) : config: backend 'contents-upload': Unable to convert message in HTX for HTTP return code 503.
Aug 30 19:59:21 haproxy2002 haproxy[2726]: [ALERT] 241/195921 (2726) : config: proxy 'stats': Unable to convert message in HTX for HTTP return code 503.
Aug 30 19:59:21 haproxy2002 haproxy[2726]: [ALERT] 241/195921 (2726) : config: proxy 'stats2': Unable to convert message in HTX for HTTP return code 503.
Aug 30 19:59:21 haproxy2002 haproxy[2726]: [ALERT] 241/195921 (2726) : config: proxy 'stats3': Unable to convert message in HTX for HTTP return code 503.
Aug 30 19:59:21 haproxy2002 haproxy[2726]: [ALERT] 241/195921 (2726) : config: proxy 'stats4': Unable to convert message in HTX for HTTP return code 503.
Aug 30 19:59:21 haproxy2002 haproxy[2726]: [ALERT] 241/195921 (2726) : Fatal errors found in configuration.

请帮助我

答案1

假设错误是由errorfile指令引起的。

errorfile 500 /etc/haproxy/errors/500.http
errorfile 503 /etc/haproxy/errors/503.http

我遇到了同样的问题,这是因为我们在 .http 文件中没有 HTTP 标头,而只有 html。

我必须在文件开头添加标题

HTTP/1.1 500 Internal Error
Cache-Control: no-cache
Connection: close
Content-Type: text/plain
Retry-After: 60
<blank line>
<rest of file content>

希望这可以帮助。

这里有一些例子:https://github.com/ingshtrom/haproxy-htx-conversion-issue(感谢作者)原文出处:https://discourse.haproxy.org/t/is-this-a-bug-unable-to-convert-message-in-htx/4304

答案2

除了 HTTP 标头的要求(包括标头和正文之间的空行)之外,您还可能会被文件中的 BOM(字节顺序标记)绊倒。

如果将文件保存为 UTF-8,则它可能在开头包含 BOM(取决于编辑器和您的选项),这是 HAProxy 不喜欢的。

解决方案是将其保存为不带 BOM 的 UTF-8(例如,您可以使用 EditPlus 之类的编辑器执行此操作,或者在 Linux 上使用 pico 重新编写)。

相关内容