在 use_backend 语句中合并 ACL

在 use_backend 语句中合并 ACL

我想在 haproxy 中结合两种不同类型的 acl (srcpath_beg)来决定使用哪个后端。

我尝试了以下不是有效语法:

acl my_ip src 192.168.0.50
acl api_path path_beg /api
use_backend private_backend if my_ip AND api_path
use_backend public_backend if api_path

第三行AND不起作用。

我也尝试过以下方法不是有效语法:

acl my_ip_and_api_path src 192.168.0.50 path_beg /api

path_beg在 和 IP 之后使用src不起作用。

答案1

请确保您连接的 IP 地址确实是上述的 192.168.0.50,并且最好注意具有 /32 范围的单个 IP。另外,删除 if 语句中的 AND。它是隐式的,并且已知在某些情况下如果使用会导致一些无效语法。因此,适合您的工作配置应该是:

acl my_ip src 192.168.0.50/32
acl api_path path_beg /api
use_backend private_backend if my_ip api_path
use_backend public_backend if api_path

相关内容