问题:
haproxy 做七层 http 代理的时候,部分 POST 请求会返回 502 Bad Gateway The server returned an invalid or incomplete response. 报错。
排查:
haproxy 版本为 2.0,系统为 CentOS 7.4
查看 haproxy 的日志,如下
看到日志有 PH 字段,说明返回的 header 有问题。
PH 字段的解析参考:http://www.haproxy.org/download/1.4/doc/configuration.txt
继续排查发现,haproxy 转发的http消息,会把 header 的 key 变成小写,如下
原来 haproxy 2.0 版本会自动把 http header 的 key 改为小写,
参考开发者的说明:https://discourse.haproxy.org/t/haproxy-2-0-0-header/3930
解决办法:
haproxy 配置文件里添加参数: no option http-use-htx,问题解决
参数资料:
- https://stackoverflow.com/questions/25886806/haproxy-bad-gateway-502
- http://www.haproxy.org/download/1.4/doc/configuration.txt
- https://discourse.haproxy.org/t/haproxy-2-0-0-header/3930/3
- https://www.haproxy.com/blog/introduction-to-haproxy-logging/
- http://blog.sina.com.cn/s/blog_7f1d56650102vp65.html
- http://agiletesting.blogspot.com/2014/07/troubleshooting-haproxy-502-errors.html
网友评论