作者:莫怀嘉805 | 来源:互联网 | 2023-01-31 16:19
除了我们正在收到的504问题之外,haproxy还是很喜欢它。相关的日志输出为:
Jun 21 13:52:06 localhost haproxy[1431]: 192.168.0.2:51435 [21/Jun/2017:13:50:26.740] www-https~ beFootprints/foorprints 0/0/2/-1/100003 504 195 - - sH-- 2/2/0/0/0 0/0 "POST /MRcgi/MRlogin.pl HTTP/1.1"
Jun 21 13:54:26 localhost haproxy[1431]: 192.168.0.2:51447 [21/Jun/2017:13:52:46.577] www-https~ beFootprints/foorprints 0/0/3/-1/100005 504 195 - - sH-- 2/2/0/0/0 0/0 "POST /MRcgi/MRlogin.pl HTTP/1.1"
Jun 21 14:15:57 localhost haproxy[1431]: 192.168.0.1:50225 [21/Jun/2017:14:14:17.771] www-https~ beFootprints/foorprints 0/0/2/-1/100004 504 195 - - sH-- 3/3/0/0/0 0/0 "POST /MRcgi/MRlogin.pl HTTP/1.1"
Jun 21 14:22:26 localhost haproxy[1431]: 192.168.0.1:50258 [21/Jun/2017:14:20:46.608] www-https~ beFootprints/foorprints 0/0/2/-1/100003 504 195 - - sH-- 2/2/0/0/0 0/0 "POST /MRcgi/MRlogin.pl HTTP/1.1"
在haproxy.cfg中使用以下超时值
defaults
log global
mode http
option forwardfor
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 100000
在Ubuntu 16.04.2 LTS上运行
任何帮助和评论都非常感谢!
1> Michael - sq..:
问题似乎出在Web服务器上。检查日志,在那里,您应该找到长期运行的请求。
这就是我得出的结论。
注意sH--
您的日志中。这是断开连接时的会话状态。这对于故障排除非常有价值。这些值是位置且区分大小写的。
s:服务器端超时在等待服务器发送或接收数据时到期。
...所以timeout server
被解雇了...
H:代理正在等待来自服务器的完整,有效的响应HEADERS(仅HTTP)。
服务器尚未完成(也许甚至还没有启动)重新恢复对代理的所有响应标头,但已建立连接且请求已发送。
HAProxy返回504 Gateway Timeout
,表明后端未及时响应。
如果您的后端需要超过100秒(?!),则需要增加timeout server
。否则,您的Apache服务器似乎有一个问题,即响应速度太慢。