我已经为我的后端设置了基本身份验证,如下所示:
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 为我指明正确的方向。