3

我已经尝试了几个小时,并阅读了这个网站和互联网所提供的内容。我似乎无法让 Socket.IO 在这里正常工作。我知道默认情况下 nginx 不能处理 Socket.IO 但是,HAproxy 可以。我希望 nginx 通过 unix 套接字为 Node 应用程序提供服务,并且效果很好。每个都有一个由 nginx 设置的子目录位置,但是,现在我需要 Socket.IO 用于最后一个应用程序,此时我无法配置。

我有最新的 socket.io、HAproxy 1.4.8 和 nginx 1.2.1。运行 ubuntu。

所以重申一下,我需要通过 nginx 让 socket.io 工作到子目录中的节点应用程序,例如:localhost/app/。

Diagram:
WEB => HAproxy => Nginx => {/app1 app1, /app2 app2, /app3 app3}

如果我能提供其他任何东西,现在就让我来吧!

4

2 回答 2

0

没有理由让“让 socket.io 通过 nginx 工作”。相反,您只需将 HAProxy 直接路由到 Socket.IO(中间没有 Nginx)。

我建议您查看以下链接:

于 2012-06-15T10:51:08.730 回答
0

您可以在端口 80 上使用 Haproxy 来前置多个在不同端口上运行的 node.js 应用程序。

例如

URL:80/app1 -> haproxy -> 节点 app1:8080

URL:80/app2 -> haproxy -> 节点 app2:8081

URL:80/app3 -> haproxy -> 节点 app3:8083

更新:

以下是一个示例 HAPROXY 配置,它将请求发送http://server:80/hellolocalhost:20001http://server:80/echolocalhost:20002

后端你好
    服务器 hellosvr 127.0.0.1:20002

后端回声
    服务器 echosvr 127.0.0.1:20001

前端 http_in
    选项 httpclose
    option forwardfor except 127.0.0.1 # stunnel 已经添加了 header
    绑定 *:80
    acl rec_hello path_beg /hello/
    use_backend hello if rec_hello
    acl rec_echo path_beg /echo
    如果 rec_echo 使用_backend echo
于 2012-06-15T21:07:31.137 回答