【发布时间】:2013-01-25 02:06:22
【问题描述】:
目前我们知道 nginx 稳定版不能代理 tcp 连接。因此,如果 express 和 socket.io 可以在同一个端口上工作,我们需要使用其他代理解决方案。
但是还有其他方法可以绕过这个问题:
- 如果我们将 socket.io 设置为监听不同的端口,然后 express 监听。例如:nginx代理80端口到8000端口,express监听8000端口,socket.io监听8001端口,客户端直接连接socket.io到8001端口。
- 使用nginx_tcp_proxy_module我们可以代理tcp连接,但是我们不能在同一个端口上使用http。所以我们使用这样的解决方案:nginx代理80端口到8000端口,81端口(用于websockets)到8001,express监听8000端口,socket.io监听8001端口,客户端连接socket.io到81端口。
这些方法有什么优缺点?
【问题讨论】:
标签: node.js nginx express socket.io