Hi Oskar,

On Sun, May 13, 2012 at 11:34:04AM +0100, Oskar Stolc wrote:
> Hi,
> 
> 
> I have 3 backend servers, each accepting different form of HTTP queries:
> 
> http://backend1.server.tld/service1.php?q=...
> http://backend1.server.tld/service2.php?q=...
> 
> http://backend2.server.tld/index.php?query=...&subquery=...
> 
> http://backend3.server.tld/image/49b8c0d9ff
> 
> Each backend server returns a different response based on either:
> - the URI path (the left part of the URI before the question mark)
> - the query string (the right part of the URI after the question mark)
> - or the combination of both
> 
> I wanted to set up a common caching cluster (using 6 Squid servers, each
> configured as reverse proxy for those 3 backends) and have HAProxy balance
> the queries among the Squid servers based on URL. I also wanted to achieve
> hight cache hit ration on each Squid server and send the same queries to
> the same Squid servers. Initially I was considering using the 'balance uri'
> algorithm, but that would not work as in case of backend2 all queries would
> go to only one Squid server. The 'balance url_param' would not work either
> as it would send the backend3 queries to only one Squid server.
> 
> So I thought the simplest solution would be to use 'balance uri', but to
> calculate the hash based on the whole URI (URI path + query string),
> instead of just the URI path. So I added a new "withquerystring" parameter
> for the 'balance uri' algorithm which does exactly what I just described.

I agree with the principle. However I'd rather use a shorter option name
such as "whole".

I don't intend to add new features to 1.4 at the moment, but I'll release
1.5-dev10 today, so if you want to rebase it on 1.5-dev9, I'll happily
include it in todays release.

Thanks,
Willy


Reply via email to