我需要嵌套的ACL条件
acl route1 hdr_sub(host) -i abc.com hdr_sub(host) -i xyz.com
acl route2 path_beg /m1
acl route3 path_beg /m2
use backend back1 if route1 (route2 or route3)
// essentially
route1 AND (route2 OR route3)
匹配后端。与此等效的正确HA代码是什么?
答案 0 :(得分:0)
单个ACL中的规则经过“或”运算,因此,您可以将route3
和acl route2 path_beg /m1
acl route2 path_beg /m2
use backend back1 if route1 route2
规则与此结合起来:
||
条件还支持a b || c
运算符,但不支持括号优先级分组,因此(a and b) or (c)
的意思是use backend back1 if route1 route2 || route1 route3
,这不等于您想要的...……如果您不这样做不想像上面那样组合ACL,您将需要此...
use backend back1 if route1 route2
use backend back1 if route1 route3
...这不是很直观。
或者这个:
Style
答案 1 :(得分:0)
请参阅HA手册的第 7.2节。使用ACL形成条件
在ACL中声明的条件由隐式逻辑AND分组。
关于path_beg,这比较简单: 您可以声明一个ACL来对这两个条件(路径1或路径2)进行分组 就是
acl path_m1_or_m2 path_beg /m1 /m2
use backend back1 if hostX path_m1_or_m2