【问题标题】:nginx and socket.io workaroundnginx 和 socket.io 解决方法
【发布时间】: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


【解决方案1】:

一旦 NGINX 1.3 发布,我应该可以使用它。 1.2 版增加了对 HTTP/1.1 协议的支持,这是必不可少的部分。

【讨论】:

    猜你喜欢
    • 2013-01-25
    • 1970-01-01
    • 2015-07-07
    • 2017-02-17
    • 2012-07-11
    • 1970-01-01
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多