【发布时间】:2012-04-11 14:39:53
【问题描述】:
目前,在处理 Web 套接字时,很难绕过大多数反向代理(nginx、HAproxy)。我在想有可能做这样的事情:
io.connect("http://yourdomain:8080/chat"); // with namespace
所以一个示例工作流程是:
- nginx 监听 80 端口
- nodejs 监听 8080 端口
- socket.io 通过 nodejs 应用监听 8080 端口
- nginx 将端口 80 上的任何请求代理到 8080 上的 nodejs
- socket.io 客户端直接连接到端口 8080 上的节点/套接字服务器并直接通信,无需反向代理参与
我无法让它工作 - 是不可能的,还是我做错了什么?
编辑:这确实有效,我的问题是将 MongoDB
_id字段发送到客户端。
我写了更详细的描述here
【问题讨论】:
-
你看过
proxy_buffering选项吗? -
查看我对 [an early question][1] [1] 的(未接受的)回答:stackoverflow.com/questions/9749070/…
-
感谢 cmets!我试图做的是绕过对 nginx 进行任何调整。实际上上面的代码有效,问题出在mongoDB上。所以你实际上可以在 socket.io 连接中指定一个端口并完全围绕 nginx 路由它。
标签: node.js nginx websocket socket.io reverse-proxy