Ah, OK, that's getting me closer. Thanks! Now I've got > option httpchk GET /index.html > HTTP/1.1\r\nHost:test1.cluster6.corp.amiestreet.com > server webA test1.cluster6.corp.amiestreet.com:80 cookie A check inter 2s > server webB test2.cluster6.corp.amiestreet.com:80 cookie B check inter 2s
and it's sending the correct headers, at least for test1. The problem is that it's also sending "Host: test1..." to test2. I don't see how to configure it to send each host the correct header. On Aug 17, 2010, at 5:23 PM, Graeme Donaldson wrote: > Hi Roy > > You simply need to send an HTTP 1.1 request with a Host: header in the http > check, like this: > > option httpchk GET /index.html\r\nHost: vhost.example.com > > Graeme. > > On 17 August 2010 23:19, Roy Smith <r...@panix.com> wrote: > I'm running "HA-Proxy version 1.3.22" on Ubuntu Linux. I've got apache set > up with two virtual hosts, and I want to use haproxy to round-robin between > them. Ultimately, these virtual hosts will be on different machines, but for > my testing environment, they're on the same box. I've got a config file I'm > using for testing: > > > global > > maxconn 100 > > > > listen webfarm cluster6:23000 > > mode http > > option httpclose > > balance roundrobin > > cookie SERVERID insert indirect > > timeout server 5s > > timeout client 5s > > timeout connect 5s > > option httpchk GET /index.html HTTP/1.0 > > server webA test1.cluster6.corp.amiestreet.com:80 cookie A check inter 2s > > server webB test2.cluster6.corp.amiestreet.com:80 cookie B check inter 2s > > > As soon as I start haproxy up, I get: > > > [WARNING] 228/171101 (20636) : Server webfarm/webA is DOWN. 1 active and 0 > > backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue. > > [WARNING] 228/171102 (20636) : Server webfarm/webB is DOWN. 0 active and 0 > > backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue. > > [ALERT] 228/171102 (20636) : proxy 'webfarm' has no server available! > > > The problem seems to be that when it sends the HTTP requests to apache, it > leaves out the Host: header. For example, strace shows that wget does: > > > write(3, "GET /index.html HTTP/1.0\r\nUser-Agent: Wget/1.12 > > (linux-gnu)\r\nAccept: */*\r\nHost: > > test1.cluster6.corp.amiestreet.com\r\nConnection: Keep-Alive\r\n\r\n", 142\ > > ) = 142 > > > but haproxy just does: > > > sendto(5, "GET /index.html HTTP/1.0\r\n\r\n", 28, > > MSG_DONTWAIT|MSG_NOSIGNAL, NULL, 0) = 28 > > How do I get haproxy to work and play well with virtual hosts? > > >