在use_backend语句中结合ACL

我想在haproxysrcpath_beg )中结合两种不同types的acl来决定使用哪个后端。

我尝试了以下是正确的语法:

 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 

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

请确保你所连接的IP地址确实是192.168.0.50,最好logging一个/ 32范围的单个IP地址。 另外,删除if语句中的AND。 这是隐含的,如果使用,在某些情况下会导致一些无效的语法。 所以你的工作configuration应该是:

 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