socket.io,netty socketio,nginx每分钟断开连接
socket.io, netty-socketio, nginx disconnecting every minute
我有一个netty-socketio
服务器在端口9092
上运行。nginx
被配置为侦听端口9093
和对netty-socketio
服务器的代理请求(两者当前都在同一台服务器上运行,但在生产中会分开一次)。
如果我直接连接到套接字服务器,一切都会正常工作,但当通过nginx
连接时,每一分钟就会断开并重新连接一次。
极其简化的客户端示例:
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.socket.io/socket.io-1.3.4.js"></script>
<script>
var socket = io.connect('http://1.1.1.1:9093');
socket.on('connect', function ()
{
console.log('connected to socket server');
});
socket.on('disconnect', function ()
{
console.log('lost connection to socket server');
});
</script>
</head>
</html>
nginx
配置:
upstream socketserver {
server 127.0.0.1:9092;
}
server {
listen 9093;
location / {
proxy_pass http://socketserver;
proxy_http_version 1.1;
proxy_pass_header Server;
proxy_pass_header Connection;
proxy_pass_header Date;
}
}
我能找到的唯一区别是,当直接连接时,Connection: Upgrade
标头设置为大写"U",而当使用nginx
时,标头设置为全小写("upgrade")。我甚至从源代码重新编译了nginx
,但大写的"U"并没有什么不同。
如有任何帮助,我们将不胜感激。谢谢
尝试在上游部分添加一个keepalive
。
...
keepalive 60;
在尝试使用默认值为60s
的指令后,我发现罪魁祸首是proxy_read_timeout
。在server
上下文中添加此内容为我解决了问题:
proxy_read_timeout 86400s;
此处提供有关此指令的文档。
相关文章:
- 计时器在使用 jQuery 一分钟后没有触发,或者每 1 分钟后给出一些其他解决方案来触发功能
- 如何运行javascript并每分钟重新加载DIV容器(计时器)
- 如何在 window.setInterval 中每分钟运行一次 getJSON 函数
- 弧钟每分钟都会将自己重置到错误的程度
- 使用年、月、日期、小时、秒格式每分钟刷新一次图像
- 每分钟调用一次函数
- socket.io,netty socketio,nginx每分钟断开连接
- ASP.NET:每5分钟从代码后面调用一次弹出窗口
- Javascript函数每分钟更改一次链接
- 每分钟获取 PHP 变量
- 每 1 分钟在 chrome 中运行一次脚本
- 流星:如何计算每分钟的推文数,而不是所有抓取的推文
- 如何限制在 http-on-modify-request 之后触发的 JavaScript 函数的执行每分钟一定次数
- 在MongoDB中搜索日条目,每分钟都有很多条目
- Chrome 扩展程序,每分钟刷新一次页面,并在每次刷新时运行 (javascript) 脚本
- 如何每 5 分钟重复一次 mysql 查询
- 节点.js每 n 分钟重新加载一次外部文件
- 如何每 n 分钟使用数据更新一次 Web 应用程序
- 每 1 分钟启动一次计时器 Jquery
- 谷歌脚本每分钟触发一次不起作用