Search squid archive

Re: cache_peer_domain with file list

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 23 Aug 2009 20:59:50 -0700, Waitman Gobble <waitman@xxxxxxxxxxx>
wrote:
> Amos Jeffries wrote:
>>> running (squid/3.0.STABLE18)
>>>
>>> The following squid.conf directive does not seem to work.
>>>
>>> cache_peer_domain server_www "/usr/local/squid/etc/domains"
>>>     
>> To do what you are trying:
>> acl our_domains dstdomain "/path/to.file"
>> cache_peer_access server_www allow our_domains
>>
>>
>> Amos
>>   
> 
> Thanks Amos, that work perfectly.
> 
> It seems to work in the order of the file -


> as a simple example, with backend servers, s1, s2 and 4 domains ex1 ex2 
> ex3 ex4,
> if i want ex1 and ex2 on s1 and ex3 and ex4 on s2
> but there are "backups" of ex1 and ex2 on s2 and vice-versa -
> 
> 
> acl s1_primary dstdomain "/s1primary"
> cache_peer_access server_s1 allow s1_primary
> acl s2_primary dstdomain "/s2primary"
> cache_peer_access server_s1 allow s2_primary
> acl s1_secondary dstdomain "/s2primary"
> cache_peer_access server_s1 allow s1_secondary
> acl s2_secondary dstdomain "/s1primary"
> cache_peer_access server_s1 allow s2_secondary
> 
> if s1 catches fire requests for all 4 domains would go to s2
> and if s2 was bricked by a felon the requests for all 4 would go to s1
> 
> essentially both s1 and s2 could all 4 domains if something bad happens
but
> not very happily, everything runs better when they're split up on
different
> machines.
> 

?huh? your example omits cache_peer order.
Which is half the critical config for failover sequencing.

Squid passes requests to the server depending on "cache_peer" lines order.
With cache_peer_access used to prune the full list of cache_peer down to
only the servers usable.

Content of the ACL file should be sorted alphabetically sorted on load.
Anything else is a bug that might be fixed one day when the dstdomain gets
its next upgrade.

So example #1:
cache_peer ... name=s1
cache_peer ... name=s2

all requests will go to s1 until it fails or gets really slow. Failover
requests go to s2 when s1 cant handle things.


Example #2:
cache_peer ... name=s1
cache_peer ... name=s2

acl ex1 dstdomain www.example.com example.com
cache_peer_access s1 allow ex1
acl ex2 dstdomain .example.com
cache_peer_access s2 allow ex2

all requests for www.example.com and example.com go to s1. Other
sub-domains go to s2.
Failover requests for www.example.com and example.com get pushed to s2 as
well.


Example #3:

cache_peer ... name=s2
cache_peer ... name=s1

acl ex1 dstdomain www.example.com example.com
cache_peer_access s1 allow ex1
acl ex2 dstdomain .example.com
cache_peer_access s2 allow ex2

all requests got to s2. Failover requests for www.example.com and
example.com go to s1.
Failover requests for all other sub-domains die with an 'cannot forward' or
'connection failed' error page.

Amos

[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux