【发布时间】:2015-05-31 16:33:01
【问题描述】:
我正在设计一个应用程序,它将使用 WebSocket 在发生更改时快速通知访问者。我打算用 Nginx 代理连接,因此它们可以与常规 HTTP 部分共享相同的地址。我担心的一件事是临时端口的耗尽。过去,我注意到 Nginx 和 Node 后端之间的连接数超过 25000 时会出现问题。我的问题是,以下配置是否会将限制增加到 100K?
upstream backends {
server 127.0.0.1:5000;
server 127.0.0.2:5000;
server 127.0.0.3:5000;
server 127.0.0.4:5000;
}
当然,打开文件的限制需要相应提高。
假设该技术有效,它可以与外部服务器一起使用吗?为接口分配一系列 IP 地址有多难?网络不是我的强项...
【问题讨论】:
-
对于单个server:port combo,理论上连接的上限应该是可能的client-ip:client-port combo的数量,很多。你甚至不应该接近耗尽你的临时端口。还是我不明白这个问题?
-
@greim - 我认为这个问题与本地 Nginx 代理和本地 websocket 服务之间的临时端口有关 - 所以客户端 IP 总是相同的。这将为您提供约 65K 连接的硬上限(此处适用端口号限制)除以 2(一个用于代理客户端的端口和一个用于服务的端口)......但这只是一个假设,我正在等待某人更有知识回答。
-
是的@Myst 我正在处理的正是这种情况。还没想出什么好办法。
-
@starshinewang - 您是否考虑过使用 Unix 套接字而不是 TCP/IP。使用不真正使用端口来识别服务的本地 Unix 套接字可能会避免某些限制,例如端口号...?
-
确认proxy_bind可以帮助解决问题!
标签: node.js nginx websocket socket.io