Hi all,

I'm trying to figure out the best way to use squid (version 3.5.27) in reverse proxy mode in regard to originserver health checks and load balancing.

So far I had been using the round-robin originserver cache peer selection algorithm while using weight to favor originservers with closer proximity/lower latency.

The problem: if one cache_peer is dead it takes ages for squid to choose the second originserver. It does look as if (e.g. if one originserver has a weight of 32, the other of 2) squid tries the dead server several times before accessing the other one.

Now instead of using round-robin plus weight it would be best to use weighted-round-robin. But as I understand it, this wouldn't work with originserver if (as it's normally the case) the originserver won't handle icp or htcp requests. Did I miss sth. here? Would background-ping work?

I tried weighted-round-robin and background-ping on originservers but got only an evenly distributed request handling even if ones originservers rtt would be less than half of the others. But then again, those originservers won't handle icp requests.

So what's the best solution to a) choose the originserver with the lowest rtt and b) still have a fast switch if one of the originservers switches into dead state?

Would I have to span another proxy (like e.g. HAProxy) between Squid and originserver or better install Squid on those originservers as well (only for serving icp requests from the squid fellows)?

Is there a better way to update the dead state of an originserver?

How do you handle this?

Thanks a lot,

Chris

_______________________________________________
squid-users mailing list
squid-users@lists.squid-cache.org
http://lists.squid-cache.org/listinfo/squid-users

Reply via email to