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

Правило 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

Теперь я хочу применить badbots Правило ACL только для домена 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

Какой рекомендуемый способ добиться этого?

Вы можете перечислить несколько ACL в if состояние

http-request deny if blockedagent grow_mydomain