使用nginx后socket.io响应慢

use*_*745 4 proxy nginx node.js socket.io

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

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

我正在使用 NGINX 1.1.16,这是配置,

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;
    }
Run Code Online (Sandbox Code Playgroud)

尽管一切正常,但我有两个问题,

  1. socket.io 响应比以前慢。使用 NGINX 时,响应时间约为 12-15 秒,不使用 NGINX 时,响应时间几乎不到 300 毫秒。用 apache benchmark 尝试过这个。

  2. 我在控制台中看到这条消息,在使用 NGINX 之前是不存在的,

    [2012-03-08 09:50:58.889] [INFO] console -    warn  - 'websocket connection invalid'
    
    Run Code Online (Sandbox Code Playgroud)

Kie*_*ief 6

您可以尝试添加:

proxy_buffering off;
Run Code Online (Sandbox Code Playgroud)

请参阅文档以获取信息,但我在各种论坛上看到一些讨论,称缓冲在某些情况下会增加响应时间。