首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >socket.io,netty-socketio,nginx每分钟断开连接

socket.io,netty-socketio,nginx每分钟断开连接
EN

Stack Overflow用户
提问于 2015-02-19 20:05:41
回答 2查看 1.2K关注 0票数 0

我有一个netty-socketio服务器运行在端口9092上。nginx被配置为侦听端口9093netty-socketio服务器的代理请求(这两种请求目前都运行在同一台服务器上,但在生产中分离一次)。

如果我直接连接到套接字服务器,一切正常工作,但是当通过nginx连接连接时,每隔一分钟就会拖放和重新连接。

非常简化的客户端示例:

代码语言:javascript
复制
<!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配置:

代码语言:javascript
复制
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时设置所有小写(”升级“)。我甚至从源代码中重新编译了nginx,但是大写的"U“并没有什么区别。

任何帮助都将不胜感激。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-20 14:18:14

在尝试使用60s默认值的指令之后,我发现罪魁祸首是proxy_read_timeout。在server上下文中添加此内容解决了我的问题:

代码语言:javascript
复制
proxy_read_timeout 86400s;

有关此指令这里的文档。

票数 0
EN

Stack Overflow用户

发布于 2015-02-19 20:15:24

尝试在上游部分添加一个keepalive

代码语言:javascript
复制
...
keepalive 60;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28615875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档