我需要处理用户断开与在xhr-polling模式下运行的sockjs应用程序的连接.当我连接到localhost时,一切都按预期工作.当我在nodejs和浏览器之间放置apache时,我在闭合的浏览器和nodejs内的disconnect事件之间得到约20秒的延迟.我的apache代理配置如下:
<Location />
ProxyPass http://127.0.0.1:8080/
ProxyPassReverse http://127.0.0.1:8080/
</Location>
文件的其余部分是默认的,你可以看到它here.我尝试使用ttl = 2和timeout = 2选项,但是没有任何改变,或者我每2秒重新连接一次而不关闭浏览器.我怎样才能减少额外的断开连接超时,但是apache,默认情况下某处?
最佳答案 您的Apache服务器可能配置为使用
HTTP Keep Alive,这将保持持久连接打开.在这种情况下,我会尝试禁用KeepAlive,或者降低Apache配置中的KeepAliveTimeout设置,看看是否能解决问题.
如果这不起作用,我还会看看netstat,看看每个套接字的状态是什么,并启动根本原因分析.这个chart给出的是TCP状态机,可以告诉你每个连接的位置. Wireshark还可以为您提供有关正在发生的事情的一些信息.