我已经尝试了几个小时,已经阅读了这个网站和互联网提供的内容。我似乎无法让Socket.IO在这里正常工作。我知道nginx默认不能处理Socket.IO但是,HAproxy可以。我希望nginx通过unix套接字为Node应用程序服务,效果很好。每个都有一个由nginx设置的子目录位置,但是,现在我需要Socket.IO用于最后一个应用程序,此时我正在失去配置。
我有最新的socket.io,HAproxy 1.4.8和nginx 1.2.1。运行ubuntu。
重申一点,我需要让socket.io通过nginx工作到子目录中的节点app,例如:localhost / app /。
Diagram:
WEB => HAproxy => Nginx => {/app1 app1, /app2 app2, /app3 app3}
如果我能提供其他任何东西,现在就告诉我!
答案 0 :(得分:0)
没有理由得到“通过nginx获取socket.io”。相反,您只需将HAProxy直接路由到Socket.IO(中间没有Nginx)。
我建议您查看以下链接:
答案 1 :(得分:0)
您可以在端口80上使用Haproxy来运行在不同端口上运行的多个node.js应用。
E.g。
网址:80 / app1 - > haproxy - >节点app1:8080
网址:80 / app2 - > haproxy - >节点app2:8081
网址:80 / app3 - > haproxy - >节点app3:8083
更新:
以下是一个示例HAPROXY配置,用于将发送到http://server:80/hello
的请求路由到localhost:20001
和http://server:80/echo
到localhost:20002
backend hello server hellosvr 127.0.0.1:20002 backend echo server echosvr 127.0.0.1:20001 frontend http_in option httpclose option forwardfor except 127.0.0.1 # stunnel already adds the header bind *:80 acl rec_hello path_beg /hello/ use_backend hello if rec_hello acl rec_echo path_beg /echo use_backend echo if rec_echo