HAProxy / Websockets为什么新的套接字不断创build?

我试图用HAProxy设置Websockets,具有以下configuration:http traffic – > haproxy – > varnish – > nginx – > node ws traffic – > haproxy – > node

一个子域强制ssl,以便haproxy将任何httpstream量redirect到https。 (和ws到wss)

一切都按预期工作,除了一个问题,新的套接字不断被创build,而不是一个(我可以看到他们在Chrome的debugging控制台每隔几秒创build一次)

当我使用Varnish做Websocketspipe道时,我没有这个问题。

我怎样才能解决这个问题 ?

global daemon defaults mode http frontend insecure # HTTP bind :80 timeout client 5000 # acl acl is_console hdr_end(host) -i console.mydomain.com acl is_client hdr_end(host) -i www.mydomain.com acl is_websocket hdr(Upgrade) -i WebSocket acl is_websocket hdr_beg(Host) -i ws # Redirect all HTTP traffic to HTTPS redirect location https://console.mydomain.com if is_console use_backend node_console if is_console is_websocket use_backend node_client if is_client is_websocket default_backend varnish frontend secure # HTTPS bind :443 ssl crt /etc/ssl/console.mydomain.com.pem timeout client 5000 # acl acl is_console hdr_end(host) -i console.mydomain.com acl is_client hdr_end(host) -i www.mydomain.com acl is_websocket hdr(Upgrade) -i WebSocket acl is_websocket hdr_beg(Host) -i ws use_backend dealspot_console if is_console is_websocket use_backend dealspot_client if is_client is_websocket default_backend varnish backend varnish balance leastconn option forwardfor timeout server 5000 timeout connect 4000 server varnish1 127.0.0.1:6081 backend node_client balance leastconn option forwardfor timeout queue 5000 timeout server 5000 timeout connect 5000 server client_node1 127.0.0.1:3000 backend node_console balance leastconn option forwardfor timeout queue 5000 timeout server 5000 timeout connect 5000 server console_node1 127.0.0.1:3001 

我设法通过在后端设置“隧道超时”来解决这个问题