다른 ACL을 수행하는 동안 HAProxy로 기본 인증을 수행하는 방법은 무엇입니까?

다른 ACL을 수행하는 동안 HAProxy로 기본 인증을 수행하는 방법은 무엇입니까?

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

관련 정보