Проверка Haproxy, если существует только ключ - PullRequest
0 голосов
/ 07 сентября 2018

Я использую haproxy в качестве балансировщика нагрузки. У меня есть определенные условия для некоторых критериев.

Мне нужно убедиться, что параметры запроса на выход из системы должны начинаться с http или https. Если значение параметра запроса не начинается с http или https, мне просто нужно отклонить запрос.

Я проверил так много условий, но, похоже, у меня не работает.

Я пробовал следующее

acl url_param1 urlp_reg(logout) ^(http|https)://.*$
http-request deny if url_param1

Приведенная выше команда заблокирует все URL-адреса, даже если в URL-адресе отсутствует ключ для выхода из системы.

Мне нужно разрешить, если у URL нет параметра выхода из системы в URL. Я просто хочу блокировать, только если значение параметра выхода из системы не начинается с http / https.

Предложите мне условие для этого.

1 Ответ

0 голосов
/ 08 сентября 2018

Ваше описание того, как это ведет себя, не имеет смысла - как написано, оно должно отрицать, если параметр существует и действительно начинается с http (s).

Правильная логика такова:

http-request deny if { url_param(logout) -m found  } !{ urlp_reg(logout) ^(http|https)://.*$ }

Отклонить запрос, если параметр существует и параметр не начинается с http (s): //.

...