我在 apache 服务器前运行 HAProxy,并且想为一些域实现基本身份验证。
手册指出这应该可以解决问题:
userlist admins
user myusername insecure-password mypassword
frontend restricted_cluster
acl auth_tintoretto http_auth(admins)
http-request auth realm ShareaholicRestricted
但是,我还有一些其他 ACL,并且在一个前端下有多个域:
frontend http-in
# Define hosts
acl stag_static hdr(host) -i staging.static.domain.com
acl prod_static hdr(host) -i prod2.static.domain.com
## figure out which one to use
use_backend apache-node1 if stag_static
use_backend nginx-cluster if prod_static
我如何组合这些命令以便仅限制对 stag_static 的访问?
答案1
我还没有测试过,但请尝试将该http-request auth realm blah
行放入后端配置中。它应该可以工作。
答案2
http-request auth
在与您想要授权的站点匹配的 ACL 上进行谓词:
frontend http-in
acl stag_static hdr(host) -i staging.static.example.com
acl prod_static hdr(host) -i prod2.static.examplecom
http-request auth realm "The No Homers Club" if stag_static
use_backend apache-node1 if stag_static
use_backend nginx-cluster if prod_static