请帮忙解决 HTTP keep-alive 问题。基本上,我有 amazon-ami linux (v2012.09) 在 EC2 上运行 nginx (v1.2.6)。
铬合金 (v25.0.1364.99) 正常访问 HTTP 页面,然后在大约 30 秒后,根据服务器上的监控,连接断开(原因不明)netstat
。此后,如果 chrome 从服务器请求某些内容,它将无法接收任何内容,并且会在大约一分钟内超时等待某些内容,显然连接已断开。超时后,后续请求可以正常工作。
Nginx 配置keepalive_timeout 70s 60s;
cat /proc/sys/net/ipv4/tcp_keepalive_time
节目7200
这可能是一件简单的事情,但谷歌搜索发现了很多类似的问题,但不完全相同。(https://code.google.com/p/chromium/issues/detail?id=27400阅读此处http://blog.fastmail.fm/2011/06/28/http-keep-alive-connection-timeouts/)。
哪些答案会有帮助:
如何更改服务器配置以避免 Chrome 断开连接时等待过长时间
哪些产品可能存在错误或有哪些解决方法
禁用 Chrome 的保持活动是一种不得已的解决方案:因为它违背了目的,因为我想减少响应延迟并拥有较长的 HTTP 连接保持活动时间,至少一分钟。谢谢
答案1
在这样的环境下,HTTPS 连接不会在 30 秒后被偷偷关闭,因此当我将网站完全置于 HTTPS 下(这实际上是计划好的)时,Chrome Keep=Alive 问题不再出现在 Keep-Alive 一分钟内,这是可以接受的。
不幸的是,我没有资源投入到 TCP 调试中。因此,从本质上讲,难题尚未完全解决。
非常感谢您的建议!