Я настроил базовую аутентификацию для своего бэкэнда, например:
backend webservers
acl is_auth_ok http_auth(SiteUsers)
http-request auth realm MySite if !is_auth_ok
Это работает, но теперь я хочу исключить определенный IP-адрес из проверки подлинности.
Я пробовал несколько вещей, но мне не удалось заставить их работать. Чтобы дать вам представление о том, что я пытаюсь сделать, вот кое-что, что я пробовал (это вызывает ошибку парсинга haproxy):
backend webservers
acl is_internal src <<my-ip-to-exclude>>
acl is_auth_ok http_auth(SiteUsers)
acl is_allowed if is_internal or is_auth_ok
http-request auth realm MySite if !is_allowed
В основном я хочу сделать в HAProxy аналог этого в Apache:
<Directory /var/www>
AuthUserFile /home/www/site1-passwd
AuthType Basic
AuthName MySite
Require valid-user
Order allow,deny
Allow from 172.17.10 <--- This allows this IP to
Satisfy any <--- get in without a password
</Directory>
Как должна выглядеть моя конфигурация HAProxy?
backend webservers
acl is_internal src <<my-ip-to-exclude>>
acl is_auth_ok http_auth(SiteUsers)
http-request auth realm MySite if !is_internal !is_auth_ok
Это окончательное рабочее решение, спасибо @GregL за то, что указали мне правильное направление.