socket.io使用nginx后响应慢

时间:2012-03-08 04:41:27

标签: node.js proxy nginx socket.io

我使用没有nginx的本地设置来为我的node.js应用程序提供服务,我使用的是socket.io,性能非常好。

现在,我正在使用nginx代理我的请求,我发现 socket.io的响应时间很长,这意味着我的页面渲染速度很快,但是socket.io呈现的数据比以前慢了几个数量级。

我正在使用NGINX 1.1.16,这是conf,

gzip  on;

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;

    access_log  logs/host.access.log  main;

    location / {
        proxy_pass http://localhost:9999;
        root   html;
        index  index.html index.htm;
    }

即使一切正常,我也有2个问题,

  1. socket.io响应比以前慢。 使用NGINX,响应 时间大约是12-15秒而且没有,它几乎不是300毫秒。试过这个 用apache基准测试。

  2. 我在控制台中看到此消息,在使用之前没有 NGINX,

    [2012-03-08 09:50:58.889] [INFO] console -    warn  - 'websocket connection invalid'
    

3 个答案:

答案 0 :(得分:3)

您可以尝试添加:

proxy_buffering off;

请参阅the docs了解相关信息,但我在各种论坛上看到一些关于缓冲增加响应时间的讨论。

答案 1 :(得分:0)

来自NGINX或SocketIO的控制台消息是什么?

NGINX代理不会谈论HTTP 1.1,这可能就是网络套接字无法正常工作的原因。

更新: 发现了一篇关于它的博文:http://www.letseehere.com/reverse-proxy-web-sockets

建议的解决方案: http://blog.mixu.net/2011/08/13/nginx-websockets-ssl-and-socket-io-deployment/

答案 2 :(得分:0)

Nginx仅支持从1.3.13开始的websocket。设置它应该很简单。请查看以下链接:

http://nginx.org/en/docs/http/websocket.html