Re: [squid-users] parent request order

From: Marcus Kool <Marcus.Kool_at_urlfilterdb.com>
Date: Wed, 19 Jun 2013 16:13:36 +0200

On Wed, Jun 19, 2013 at 09:27:54AM -0300, Marcus Kool wrote:
>
>
> On 06/19/2013 09:02 AM, T Ls wrote:
> >Hi,
> >
> >we are using squid (S_{1,2,3}) to connect our sites to the internet via
> >parent proxies (P_{1,2}), there is no direct line to the internet. The
> >constellation looks something like this:
> > (P_1) (P_2)
> > | / \
> > /-----------------\
> > | | W A N | | |
> > \-----------------/
> > | / \
> > (S_1) (S_2) (S_3)
> > | | |
> > (N_1) (N_2) (N_3)
> >
> >the mapping S_i <=> P_j is fix and I can't change it. In S_1 config, I
> >have the line:
> >
> >cache_peer P_1 parent 80 0 no-query default
> >
> >If one parent fails (e.g. P_1), we force all clients in N_1 to use S_2 (by
> >AD policy). This procedure works, but there are two major drawbacks:
> >a) we have to make this switching manually (and also the swich back, after
> >P_1 recovers)
> >b) S_2 has to handle N_1+N_2 traffic
> >
> >What I want to do is:
> >a) switch to alternative parents automatically
> >b) in case of P_1-failure: distribute N_1-traffic over S_2 and S_3
> >c) in normal operation send all requests to P_1 and no requests to S_2 or
> >S_3
>
> wpad does a good job.
> I am not sure how it balances but the failover works fine.
>
> Marcus

wpac/pac has no elegant load balancing, but I found an example
of load balancing based on the IP address of the web client:
http://www.proxypacfiles.com/proxypac/index.php?option=com_content&view=article&id=63&Itemid=104

So, what you can do is divide the client IP address range in
3 segments and via the PAC file make a decision which
proxy (S_i) will be the primary proxy; the browser wil only
use the secondary proxy when the first one is not available.

Using PAC makes failover and balancing automatic as you
desired.

Marcus

> >Because of c), I can't declare S_{2,3} as sibling (as far as I understand
> >the function of a sibling and the peer selection methodes), so I changed
> >the S_1 config to:
> >cache_peer P_1 parent 80 0 no-query
> >cache_peer S_2 parent 80 0 no-query
> >cache_peer S_3 parent 80 0 no-query
> >
> >I think, this fits to a) and b) (because a client request is send to
> >FIRST_UP_PARENT), but this will not fit to c) perfectly (may be S_2 is
> >FIRST_UP_PARENT, but it still has to fetch the data from
> >P_2, so the data for N_1 passes the line of S_2 two times and this should
> >not happen).
> >
> >Can basetime=x at the P_1-line make sure, that P_1 is always choosen in
> >normal operation?
> >
> >Any other ideas?
> >
> >
> >Thanks in advance
> >Thomas
>
Received on Wed Jun 19 2013 - 14:13:43 MDT

This archive was generated by hypermail 2.2.0 : Mon Jun 24 2013 - 12:00:05 MDT