HAProxy 基本身份验证(特定 IP 除外)

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 配置应该是什么样的?

答案1

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 为我指明正确的方向。

相关内容