[squid-users] Question: Is it possible adaptation_service_chain from services with different access lists?
Alex Rousskov
rousskov at measurement-factory.com
Mon Sep 26 18:08:44 UTC 2016
On 09/26/2016 11:32 AM, Yuri Voinov wrote:
> 26.09.2016 23:16, Alex Rousskov пишет:
>> On 09/26/2016 10:42 AM, Yuri Voinov wrote:
>>> How can I make a chain of adaptation with
>>> different acl's for different chained services?
>> By configuring several chains and then writing adaptation_access rules
>> to select the right chain for a given message.
> Ahaaaaaaaaa. I.e., I can specify chain_A with own access rules and one
> service_A in chain, and then chain_B, also with own access rules and one
> service_B, and, finally, specify chain_C with chain_A+chain_B and with
> access "all". Right?
Whether that is right or wrong depends on the specific ACLs. Also, there
is no need to create single-service chains. If your rulesA are mutually
exclusive with rulesB, then you can use them like this:
adaptation_access serviceA rulesA
adaptation_access serviceB rulesB
adaptation_access chainAB all
However, again, I discourage you from saying "chain_A with own access
rulesA" because access rules do not belong to a chain. Squid evaluates
adaptation_access lines in the squid.conf order. Thus, if rulesA are NOT
mutually exclusive with rulesB, then the following configuration will
have a different effect from the above three lines:
adaptation_access serviceB rulesB
adaptation_access serviceA rulesA
adaptation_access chainAB all
and this configuration does not make any sense at all:
adaptation_access chainAB all
adaptation_access serviceA rulesA
adaptation_access serviceB rulesB
It is better to think like this:
adaptation_access serviceA rules1
adaptation_access serviceB rules2
adaptation_access chainC rules3
serviceA is used when and only when "rules1" matches
serviceB is used when and only when "!rules1 rules2" matches
chainC is used when and only when "!rules1 !rules2 rules3" matches
Each message will be sent to either just serviceA, or just serviceB, or
just ChainC, or no services/chains/sets at all.
HTH,
Alex.
More information about the squid-users
mailing list