Назад | Перейти на главную страницу

объединить ACL в операторе use_backend

Я хочу объединить 2 разных типа acl в haproxy (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 в 3 строчке не работает.

Я также пробовал следующее: не допустимый синтаксис:

acl my_ip_and_api_path src 192.168.0.50 path_beg /api

С помощью path_beg после src и IP не работает.

Убедитесь, что IP-адрес, с которого вы подключаетесь, действительно является упомянутым 192.168.0.50, и лучше отметить один IP-адрес с диапазоном / 32. Также удалите AND в операторе if. Он является неявным и, как известно, в некоторых случаях может вызывать недопустимый синтаксис. Итак, рабочая конфигурация для вас должна быть:

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