0

我将 nginx 设置为具有以下配置的反向代理。

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include  mime.types;

    default_type  application/octet-stream;
    keepalive_timeout  65;

    map $http_upgrade $connection_upgrade {
        default  upgrade;
        ''  close;
    }

    server {
        listen  8080;

        server_name  localhost;

        add_header  X-Cache-Status  $upstream_cache_status;

        location /node/ {
            proxy_http_version  1.1;
            proxy_pass   http://127.0.0.1:8000/;
            proxy_redirect  off;
            proxy_set_header  Connection  $connection_upgrade;
            proxy_set_header  Upgrade  $http_upgrade;
        }
    }
}

我正在使用以下代码连接到它。

socket = io.connect('http://localhost:8080', {
    'resource': 'node/socket.io'
});

连接后,一切正常,除了 Node 永远不会收到超过 15kb 的消息。Nginx 不会在访问或错误日志中记录任何内容。

我很确定这是一个 nginx 配置问题,但我没有找到任何影响此行为的设置。我试过client_body_buffer_size size, proxy_buffers, proxy_buffer_size,tcp_nodelaylarge_client_header_buffers.

如何让 nginx 停止丢弃这些消息?

4

1 回答 1

1

我猜这个问题确实与代理缓冲区有关,我只是没有将它们设置得足够高。以下内容现在适用于 5mb 左右的消息。

proxy_buffers 8 2m;
proxy_buffer_size 10m;
proxy_busy_buffers_size 10m;
于 2013-11-10T05:54:08.163 回答