[squid-users] Groups of peers load-balancing

Patrick Chemla patrick.chemla at performance-managers.com
Fri Oct 7 06:17:03 UTC 2016


Many thanks Amos for your help.

I will set up my servers in the next days, and will let you know how it 
works, well I am sure.

Patrick


Le 06/10/2016 à 13:11, Amos Jeffries a écrit :
> On 6/10/2016 8:52 p.m., George William Herbert wrote:
>> Usually you load balance with another tool...
> HTTP Load Balancer is one of the roles Squid is designed for.
>
> When you need to converge the LB, routing, and caching tasks Squid is
> the product for the job.
>
>>> On Oct 6, 2016, at 12:16 AM, Patrick Chemla wrote:
>>>
>>> Hi,
>>>
>>> I am using Squid Cache: Version 3.5.20 on 2 Fedora 24 server.
>>>
>>> I have to set a load-balancer for multiple sites, each using
>>> different peers, on both servers + cloud instances.
>>>
>>> Squid is the entry point for all websites. According to the domain,
>>> I will have 2 to 5 peers to handle the load. But, as I have 2 big
>>> domains, and a group of other domains, I need dedicated peers for
>>> each big domains, and another groups of peers for other domains.
>>>
>>> So squid must route requests :
>>>
>>> - for domain A to peers A1 A2 A3
>>>
>>> - for domain B to peers B1 B2 B3 B4 B5
>>>
>>> - for all other domains to peers O1 O2
>>>
>>> Load balancing method within a group could be different, as some
>>> domains need user to reach always same peer, when other domain
>>> could simply handle round-robin balancing.
>>>
>>> I can't find how to group peers A1 A2 A3 to group A, peers B1
>>> B2..B5 to group B, O1 O2 to group O, then set the cache_peer_access
>>> to the needed group.
> Grouping is done by cache_peer_access ACLs.
>
> You need to define one ACL which will only match for one group.
> Typically the domain name is used for that. The "group" is simply the
> peers which the request is allowed to be sent to.
>
> For example:
>
>   acl groupA dstdomain .example.com
>   acl groupB dstdomain .example.net
>   acl groupO dstdomain .example.org
>
>   cache_peer_access A1 allow groupA
>   cache_peer_access A1 deny all
>   cache_peer_access A2 allow groupA
>   cache_peer_access A2 deny all
>   ...
>
>   cache_peer_access B1 allow groupB
>   cache_peer_access B1 deny all
>   cache_peer_access B2 allow groupB
>   cache_peer_access B2 deny all
>   ...
>
>
> Since your peers are split into distinct groups just add the relevant
> algorithm to the cache_peer in that group which is using it.
>
> Things can get complex if you have one peer being part of two groups.
> But then you just define two cache_peer lines for it, one in each group
> with the relevant LB algorithm. The name= parameter is used distinguish
> which cache_peer line is relevant for the cache_peer_access rules.
>
> Amos
>
> _______________________________________________
> squid-users mailing list
> squid-users at lists.squid-cache.org
> http://lists.squid-cache.org/listinfo/squid-users



More information about the squid-users mailing list