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 blah
Zeile in Ihre Backend-Konfiguration einzufügen. Es sollte funktionieren.
Antwort2
Prädikat http-request auth
basierend 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