Re: [squid-users] Parent Proxy's, Not Failing over when Primary Parent is Down.

From: Chris Robertson <crobertson_at_gci.net>
Date: Thu, 30 Apr 2009 11:12:51 -0800

Dean Weimer wrote:
> I have a current Parent child proxy configuration I have been testing, its working with the exception of some sites not failing over to second parent when primary parent goes down.
>
> In the test scenario I have 2 parent proxies, and one child proxy server, the parents are each configured twice using an alias IP address. This is done to load balance using round robin for the majority of web traffic yet allow some sites that we have identified to not work correctly with load balancing to go out a single parent proxy.
>

Since Squid 2.6 there has been a parent selection method called
"sourcehash", which will keep a client-to-parent-proxy relationship
until the parent fails.

> The load balanced traffic works as expected, the dead parent is identified and ignored until it comes back online. The traffic that cannot be load balanced is all using HTTPS (not sure HTTPS has anything to do with the problem or not), when I stop the parent proxy 10.50.20.7 (aka 10.52.20.7) the round-robin configuration is promptly marked as dead. However a website that has already been connected to that is in the NONBAL acl just returns the proxy error from the child giving a connect to (10.52.20.7) parent failed connection denied.

Hmmm... You might have to disable server_persistent_connections, or
lower the value of persistent_request_timeout to have a better response
rate to a parent failure with your current setup.

> It will not mark the non load balanced parent dead, closing and restarting the browser doesn't help. It will change the status to dead however if I connect to another site in the NONBAL acl. Going back to the first site, I can then connect, even though I have to log in again, which is expected and why these sites cannot be load balanced.
>
> Does anyone have any ideas short of writing some sort of test script that will cause the parent to be marked as dead, if it fails without any user intervention.
>
> Here is the cache peer configuration from the child proxy. FYI, I added the 5 sec timeout to see if it had any effect, and it didn't with the exception of speeding up the detection of the dead load balanced proxy.
>
> ## Define Parent Caches
> # Cache Peer Timeout
> peer_connect_timeout 5 seconds
> # Round Robin Caches
> cache_peer 10.50.20.7 parent 8080 8181 name=DSL2BAL round-robin
> cache_peer 10.50.20.6 parent 8080 8181 name=DSL1BAL round-robin
> # Non Load Balanced caches
> cache_peer 10.52.20.7 parent 8080 8181 name=DSL2
> cache_peer 10.52.20.6 parent 8080 8181 name=DSL1
>
> ## Define Parent Cache Access rules
> # Access Control Lists
> acl NONBAL dstdomain "/usr/local/squid/etc/nonbal.dns.list
> # Rules for the Control Lists
> cache_peer_access DSL2BAL allow !NONBAL
> cache_peer_access DSL1BAL allow !NONBAL
> cache_peer_access DSL2 allow NONBAL
> cache_peer_access DSL1 allow NONBAL
>
> Thanks,
> Dean Weimer
> Network Administrator
> Orscheln Management Co

Chris
Received on Thu Apr 30 2009 - 19:12:21 MDT

This archive was generated by hypermail 2.2.0 : Fri May 01 2009 - 12:00:02 MDT