Hey guys,

I've been stressing myself out for a week now and I can't find a way
to properly configure SPDY along with virtual hosts.

Backend: I have a nginx server hosting several virtual hosts, port 80
serves HTTP and port 81 serves SPDY (non ssl).

I plan to replicate this setup on several physical servers and would
like to load balance them using HAProxy. I came up with the following
HAProxy config:

---
defaults
  stats enable
  mode tcp
  log global
  balance roundrobin

frontend secure
  bind *:443 ssl crt /etc/certs/cert.pem npn spdy/3.1,http/1.1
  tcp-request inspect-delay 5s
  tcp-request content accept if HTTP

  acl spdy ssl_fc_npn -i spdy/3.1
  acl site1 req.hdr(Host) -i site1.foo.com
  acl site2 req.hdr(Host) -i site2.foo.com

  use_backend site1_spdy if spdy site1
  use_backend site1_http if site1

  use_backend site2_spdy if spdy site2
  use_backend site2_http if site2

backend site1_spdy
  option httpchk HEAD /check HTTP/1.1\r\nHost:\ site1.foo.com
  server node1 127.0.0.1:81 check port 80

backend site1_http
  option httpchk HEAD /check HTTP/1.1\r\nHost:\ site1.foo.com
  server node1 127.0.0.1:80 check

backend site2_spdy
  option httpchk HEAD /check HTTP/1.1\r\nHost:\ site2.foo.com
  server node1 127.0.0.1:81 check port 80

backend site2_http
  option httpchk HEAD /check HTTP/1.1\r\nHost:\ site2.foo.com
  server node1 127.0.0.1:80 check
---

Once I get the config working, I will add additional nginx servers to
the HAProxy backends.

The problem is: All backends are reported OK on the stats page. But
I'm constantly getting "Connection closed" whenever I try from a SPDY
enabled browser (eg, Google Chrome), while a curl call to the same URL
always succeeds.

This is driving me nuts, I've been through over 100 posts but I just
can't seem to get it working. Finally shooting this email on a Friday
night in the hope of help as a final resort.

Thanks much,
Viranch

Reply via email to