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

Базовая аутентификация HAProxy, кроме определенного IP

Я настроил базовую аутентификацию для своего бэкэнда, например:

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 за то, что указали мне правильное направление.