我正在使用HAProxy将子域上的请求发送到node.js应用程序.
我无法让WebSockets工作.到目前为止,我只能让客户端建立WebSocket连接,但之后很快就会出现断开连接.
我在ubuntu上.我一直在使用的各种版本socket.io和node-websocket-server.客户端是Safari或Chrome的最新版本.HAProxy版本是1.4.8
这是我的HAProxy.cfg
global
maxconn 4096
pidfile /var/run/haproxy.pid
daemon
defaults
mode http
maxconn 2000
option http-server-close
option http-pretend-keepalive
contimeout 5000
clitimeout 50000
srvtimeout 50000
frontend HTTP_PROXY
bind *:80
timeout client 86400000
#default server
default_backend NGINX_SERVERS
#node server
acl host_node_sockettest hdr_beg(host) -i mysubdomain.mydomain
use_backend NODE_SOCKETTEST_SERVERS if host_node_sockettest
backend NGINX_SERVERS
server THIS_NGINX_SERVER 127.0.0.1:8081
backend NODE_SOCKETTEST_SERVERS
timeout queue 5000
timeout server 86400000
server THIS_NODE_SERVER localhost:8180 maxconn 200 check
Run Code Online (Sandbox Code Playgroud)
我已经浏览了网络和邮件列表但无法获得任何建议的解决方案.
(ps这可能是针对serverfault,但是还有其他的HAProxy问题,所以我选择在这里发帖)
我希望这不是一个非常愚蠢的问题,但我正在学习如何为我的网站实现socket.io服务器来生成实时应用程序,但我的问题是我无法弄清楚如何在Apache服务环境中实现所述应用程序.目前,当我运行node server.js开始我socket.io服务器,我必须通过访问访问它http://localhost:XXXX哪里XXXX是什么端口我把它安装到,自然.我不希望我的网站被强制在这样的备用端口上查看,但我显然无法将服务器连接到端口80,因为Apache正在监听它.
显然,一个自然的解决方案是停止Apache服务,然后在端口80上节点服务器以避免冲突,但我不想牺牲Apache提供的所有功能.基本上,我想继续通过端口80上的Apache服务我的网站,并通过socket.io在端口3000上集成实时应用程序的某些方面,让我们说.
有没有办法做到这一点,避免我不想要的东西?这些事情是1)让用户:3000在URL中访问我的网站,2)禁用Apache,3)使用iframe.
提前致谢.