[英]socket.io, netty-socketio, nginx disconnecting every minute
我有一个在端口9092
上运行netty-socketio
服务器。 nginx
配置为侦听端口9093
和对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
标题在使用nginx
时直接连接时设置为大写“U”,并且在使用nginx
时设置为全部小写(“upgrade”)。 我甚至从源代码重新编译nginx
但是大写的“U”并没有什么区别。
任何帮助将不胜感激。 谢谢。
尝试在上游部分添加keepalive
。
...
keepalive 60;
在尝试使用默认值为60s
指令后,我发现罪魁祸首是proxy_read_timeout
。 在server
上下文中添加这个为我解决了问题:
proxy_read_timeout 86400s;
这里有关于该指令的文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.