特定域的 Haproxy ACL 规则

特定域的 Haproxy ACL 规则

在我的 Haproxy 配置中,我设置了一些 ACL 规则。我的 haproxy.config 如下所示:

frontend incoming
bind *:80

  acl grow_mydomain hdr(host) grow.mydoamin.com
    use_backend grow_mydomain if grow_mydomain

  acl staging_mydomain hdr(host) staging.mydomain.com
    use_backend staging_mydomain if staging_mydomain

现在,我想设置另一条规则来阻止恶意机器人。我想添加新的 ACL 规则,

  acl blockedagent hdr_reg(user-agent) -i -f /etc/haproxy/badbots.lst
    http-request deny if blockedagent

现在,我只想将badbotsACL 规则应用于域grow.mydomain.com。它不应该考虑域staging.mydomain.com

我尝试了下面的方法,但不起作用。因为它考虑了两个域。

frontend incoming
bind *:80

  acl blockedagent hdr_reg(user-agent) -i -f /etc/haproxy/badbots.lst
    http-request deny if blockedagent

  acl grow_mydomain hdr(host) grow.mydoamin.com
    use_backend grow_mydomain if grow_mydomain

  acl staging_mydomain hdr(host) staging.mydomain.com
    use_backend staging_mydomain if staging_mydomain

实现这一目标的推荐方法是什么?

答案1

您可以在if条件中列出多个 ACL

http-request deny if blockedagent grow_mydomain

相关内容