我想在 haproxy 中结合两种不同类型的 acl (src
和path_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