我对设置Socket.IO服务器+ Rails Web应用程序很感兴趣。但是,正如许多人所知,支持WebSocket的Web服务器并不多。到目前为止,这是我的两次尝试:
http://www.letseehere.com/reverse-proxy-web- sockets
http://github.com/nodejitsu/node-http- proxy
http://github.com/substack/bouncy
这些都是我尝试过的事情,我很好奇还有谁沿着这些路线走了,终于找到了可以解决的问题(当然,还有他们为使它起作用而做了些什么)。
根据alessioalex的要求,这是我的配置文件。我删除了所有现有注释,但添加了一些我自己认为不重要的注释。
但是,描述此配置的所有部分的功能超出了本文的范围,但是您很可能可以在HAProxy网站上找到必要的文档。
global maxconn 4096 pidfile /var/run/haproxy.pid defaults mode http frontend all bind 0.0.0.0:80 mode tcp maxconn 200000 timeout client 86400000 default_backend www_backend # Any URL beginning with socket.io will be flagged as 'is_websocket' acl is_websocket path_beg /socket.io acl is_websocket hdr(Upgrade) -i WebSocket acl is_websocket hdr_beg(Host) -i ws # The connection to use if 'is_websocket' is flagged use_backend socket_backend_http if is_websocket tcp-request inspect-delay 500ms tcp-request content accept if HTTP backend www_backend option httplog option httpclose balance roundrobin option forwardfor timeout server 30000 timeout connect 4000 server thin1 localhost:4001 weight 1 maxconn 1024 check server thin2 localhost:4002 weight 1 maxconn 1024 check server thin3 localhost:4003 weight 1 maxconn 1024 check backend socket_backend_http mode http option httplog option http-server-close option forceclose no option httpclose balance roundrobin option forwardfor timeout queue 5000 timeout server 86400000 timeout connect 86400000 timeout check 1s server socket1 localhost:5001 weight 1 maxconn 1024 check