On Dec 12, 2015 8:39 PM, "David Birdsong" <[email protected]> wrote:
>
>> You can try something like :
>>   acl API_HOST hdr_dom(host) -i api.company.com
>>   acl API_V3   path_beg -i /v3
>>
>>   use_backend new_backend if API_HOST API_V3
>
>
> this might be where i picked up the presence of an implicit AND.
>
> so acl's are implicit OR
> use_backend is implicit AND
> ?
>

ACLs are lists of tests.  The list, when tested in a condition, is true
when any rule matches, so... you could call that implicit OR.

Conditions, which usually follow the keyword "if" or "unless," are implicit
AND.

ACL can also be anonymous (unnamed), so the following would also be
equivalent.  To me, this form is often more intuitive, but can lead to
configuration inconsistencies unless the ACLs in question are only used in
one condition (otherwise, you run the risk of changing it in one place, not
another).

use_backend new_backend if { hdr_dom(host) -i api.company.com } { path_beg
-i /v3 }

This is a condition with two anonymous ACLs, implicitly ANDed.  Note that
at least one space around the braces is mandatory for the parser to
recognize them correctly.

Reply via email to