Load balancing multiple virtual hosts on 1 IP

Matthew Seaman m.seaman at infracaninophile.co.uk
Sat Jan 31 05:55:30 PST 2009


Marc G. Fournier wrote:
> 
> Simple: is it possible?
> 
> I have two VMs that contain the same content, on two different IPs .. I 
> want to setup a third VM with something like haproxy on it that will 
> take the URL (http://domain1) and pull the content from one or the other 
> ...
> 
> So far, all works well if I only have one virtual host, but as soon as I 
> add a second one (http://domain2), when I try to go to http://domain2, 
> it pulls up the content for domain1 also, as if I was going to http://IP 
> instead.
> 
> Is there a way to set this up (with haproxy, or some other software), 
> that it will actually pass the URL through to the backend apache server 
> and load up the right content?  Or is this a limitation in the protocol 
> itself?/

This is certainly possible -- most of the world's big web sites work in
exactly this way, although they would tend to use dedicated hardware LB
if they were of any appreciable size.

I think what's going wrong for you is that you are using a front-end proxy,
and it's rewriting the requests with the host names of the real servers,
which will certainly screw up name based virtual hosts.

Instead of ha-proxy, look into relayd -- in conjunction with a pf(4)
firewall this will do exactly what you want.  It can operate purely at the
IP level or even at layer 2 if you want to implement DSR.  Another
alternative to consider is varnish, although I'm not sure that has much
in the way of health-checking the back-end servers behind it.  varnish
is a reverse-proxy / web accelerator so can give you some performance
boost as well.

	Cheers,

	Matthew

-- 
Dr Matthew J Seaman MA, D.Phil.                   7 Priory Courtyard
                                                  Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey     Ramsgate
                                                  Kent, CT11 9PW

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 259 bytes
Desc: OpenPGP digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20090131/e05fed11/signature.pgp


More information about the freebsd-questions mailing list