Как выполнить базовую аутентификацию с помощью HAProxy, одновременно используя другие ACL?

Как выполнить базовую аутентификацию с помощью HAProxy, одновременно используя другие ACL?

Я запускаю HAProxy перед серверами Apache и хочу реализовать базовую аутентификацию для некоторых доменов.

В руководстве указано, что это должно помочь:

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

Связанный контент