¿Cómo realizar una autenticación básica con HAProxy mientras se realiza otra ACL?

¿Cómo realizar una autenticación básica con HAProxy mientras se realiza otra ACL?

Estoy ejecutando HAProxy frente a servidores Apache y quiero implementar una autenticación básica para algunos dominios.

El manual indica que esto debería funcionar:

userlist admins
user myusername insecure-password mypassword

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

Sin embargo, tengo alguna otra ACL y bajo una interfaz hay varios dominios:

 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

¿Cómo combino esos comandos para restringir solo el acceso a stag_static?

Respuesta1

No lo he probado, pero intenta poner la http-request auth realm blahlínea en la configuración de tu backend. Deberia de funcionar.

Respuesta2

Predica el http-request authen la ACL que coincide con el sitio que deseas autenticar:

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

información relacionada