On 27 May 2010, at 5:09, Chris Sarginson wrote:

>> Externally, users can only hit our sites at www.example.com or 
>> someapp.example.com, but internally for testing, monitoring, and 
>> configuration purposes, we want to be able to hit the backend servers 
>> individually (i.e. web[1-3].www.example.com, web[1-3].someapp.example.com).  
>> I could make 3 separate backends to handle each of these and use a 
>> use_backend acl to pick based on the Host header, but that seems like 
>> overkill and would be the only purpose those backends serve.  Is there a way 
>> to balance to a _specific_ server based on the Host header (no cookies)?  I 
>> know you can use a balance hdr, but that is doing a hash of the header to 
>> pick the server.  I need to explicitly configure `Host: 
>> webX.___.example.com' to go to the backend server webX.  Is that doable 
>> somehow, or do I have to go the separate backend route?
> 
> I find the easiest way to do this is to add an alias to each host like you 
> mention, and then set up DNS records to point to that servers external IP 
> address, bypassing haproxy.  This way if you do start experiencing any issues 
> you aren't having to debug 2 layers to find the cause - it's either the host 
> or the loadbalancer.

I had considered this, but there are two issues with it:  1) If we are testing 
something, the stack now looks different (we are not going through the load 
balancer), and 2) I don't want to set up SSL on the servers (it is all handled 
by stunnel on the haproxy box).  So, I still want all of the traffic to go 
through haproxy.

Based on the lack of other ideas, I guess I will have to go the 
separate-backend-per-server route.  :-\

Thanks!


Reply via email to