Hi Dustin

We are doing something very similar. I have a sample of our config file
below. However this is not perfect. We are seeing a lot of dirty connections
for normal http traffic because of the long timeout,
and we are having some, as yet not-fully-diagnosed issues with incorrectly
terminated connections to the http backend.

However the websockets seem to be working fine.

frontend all 0.0.0.0:80
  #send most requests to normal http server
  default_backend   www_backend

  # sockets need a long timeout
  timeout client  86400000

  acl is_websocket hdr(Upgrade)    -i WebSocket   #check the Upgrade header
  acl is_websocket hdr_beg(Host)   -i ws               #also check the host
in case Upgrade header not set

  use_backend   socket_backend  if is_websocket

backend socket_backend
  balance roundrobin
  timeout queue     5000
  timeout server  86400000
  server socket1 localhost:8090 maxconn 200 check
  server socket2 localhost:8091 maxconn 200 check


Laurie

On 27 April 2010 01:06, Dustin Moskovitz <mos...@asana.com> wrote:

> Our company is attempting to use haproxy to balance websocket requests and
> ran into a snag when trying to set up virtual hosts. Using acl rules to
> divide traffic between two backends is very straightforward and we're able
> to make it work when using http mode, but we need to use tcp for websockets.
> Otherwise the proxy never sends the response back to the client.
>
> Does anybody know of a way either to a) use haproxy in http mode with
> websockets (e.g. tell the proxy to send packets onward as it gets them from
> the backend) or b) create a host-based rule in tcp mode?
>
> Thanks,
> Dustin
>



-- 
Dr Laurie Young
Scrum Master
New Bamboo

Follow me on twitter: @wildfalcon
Follow us on twitter:  @newbamboo

Try our new Realtime web service: http://pusherapp.com!

Reply via email to