Wie führe ich eine grundlegende Authentifizierung mit HAProxy durch, während ich andere ACLs verwende?

Wie führe ich eine grundlegende Authentifizierung mit HAProxy durch, während ich andere ACLs verwende?

Ich führe HAProxy vor Apache-Servern aus und möchte für einige Domänen eine grundlegende Authentifizierung implementieren.

Im Handbuch steht, dass dies funktionieren sollte:

userlist admins
user myusername insecure-password mypassword

frontend restricted_cluster
   acl auth_tintoretto http_auth(admins)
   http-request auth realm ShareaholicRestricted

Ich habe jedoch eine andere ACL und unter einem Frontend gibt es mehrere Domänen:

 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

Wie kombiniere ich diese Befehle, um nur den Zugriff auf stag_static einzuschränken?

Antwort1

Ich habe es nicht getestet, aber versuchen Sie, die http-request auth realm blahZeile in Ihre Backend-Konfiguration einzufügen. Es sollte funktionieren.

Antwort2

Prädikat http-request authbasierend auf der ACL, die der Site entspricht, die Sie authentifizieren möchten:

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

verwandte Informationen