Socket.IO + Nginx 连接限制
Socket.IO + Nginx connection limit
我使用 Socket.io 启动服务器并使用 Nginx 作为负载平衡。
现在我尝试加载测试服务器。
我循环创建连接并计算有多少个连接 connect
并在 connect_error
时记录。
当我通过 Nginx 连接到服务器时,每次连接 ~500 后都会出错。
Opening SOCKET
SOCKET connect 508
Opening SOCKET
SOCKET connect 509
Opening SOCKET
connect_error
{ [Error: websocket error]
description:
{ [Error: socket hang up]
code: 'ECONNRESET',
target:
{ domain: null,
_events: [Object],
_maxListeners: 10,
_socket: null,
_ultron: null,
_closeReceived: false,
bytesReceived: 0,
readyState: 0,
supports: [Object],
extensions: {},
_isServer: false,
url: 'ws://MY_NGINX_SERVER/socket.io/?EIO=3&transport=websocket',
protocolVersion: 13,
binaryType: 'arraybuffer' }
}
}
但如果我直接连接到套接字服务器,它可以有超过 500 个连接。
这是我的 Nginx 配置
server {
listen 80;
access_log /var/log/nginx/load_test.log;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://SOCKETIO_SERVER/;
proxy_redirect off;
}
}
我认为这是 Nginx 配置文件中的内容,但我找不到任何帮助。
感谢提前。
糟糕,它必须在文件 /etc/nginx/nginx.conf
中配置 worker_connections
events {
worker_connections 60000;
}
我使用 Socket.io 启动服务器并使用 Nginx 作为负载平衡。 现在我尝试加载测试服务器。
我循环创建连接并计算有多少个连接 connect
并在 connect_error
时记录。
当我通过 Nginx 连接到服务器时,每次连接 ~500 后都会出错。
Opening SOCKET
SOCKET connect 508
Opening SOCKET
SOCKET connect 509
Opening SOCKET
connect_error
{ [Error: websocket error]
description:
{ [Error: socket hang up]
code: 'ECONNRESET',
target:
{ domain: null,
_events: [Object],
_maxListeners: 10,
_socket: null,
_ultron: null,
_closeReceived: false,
bytesReceived: 0,
readyState: 0,
supports: [Object],
extensions: {},
_isServer: false,
url: 'ws://MY_NGINX_SERVER/socket.io/?EIO=3&transport=websocket',
protocolVersion: 13,
binaryType: 'arraybuffer' }
}
}
但如果我直接连接到套接字服务器,它可以有超过 500 个连接。
这是我的 Nginx 配置
server {
listen 80;
access_log /var/log/nginx/load_test.log;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://SOCKETIO_SERVER/;
proxy_redirect off;
}
}
我认为这是 Nginx 配置文件中的内容,但我找不到任何帮助。
感谢提前。
糟糕,它必须在文件 /etc/nginx/nginx.conf
中配置worker_connections
events {
worker_connections 60000;
}