¿Qué son las ACLs de HAProxy?

En HAProxy, las Listas de Control de Acceso (ACLs) son la base del enrutamiento inteligente. Permiten a HAProxy inspeccionar solicitudes entrantes y tomar decisiones para enrutamiento, seguridad o redirecciones.

Sintaxis Básica de ACL

acl <nombre_acl> <criterio> [banderas] <valor>

Casos de Uso Comunes de ACL

1. Enrutamiento Basado en Host

frontend main_frontend
    bind *:80
    acl is_blog hdr(host) -i blog.ejemplo.com
    use_backend blog_servers if is_blog
    default_backend web_servers

2. Enrutamiento Basado en Ruta

frontend main_frontend
    bind *:80
    acl app_api path_beg /api/
    use_backend api_servers if app_api

3. Bloqueo de IPs

frontend main_frontend
    bind *:80
    acl blocked_ip src 203.0.113.50
    http-request deny if blocked_ip

4. Redirección HTTP a HTTPS

frontend http_in
    bind *:80
    http-request redirect scheme https code 301 if !{ ssl_fc }

5. Enrutamiento por User-Agent

frontend main_frontend
    bind *:80
    acl is_mobile hdr_sub(User-Agent) -i android iphone
    use_backend mobile_servers if is_mobile

Resumen

  • Las ACL extraen datos de la solicitud y desencadenan acciones.
  • Use hdr(host) para dominios, path_beg para URLs y src para IPs.
  • Siempre pruebe la sintaxis con haproxy -c antes de recargar el servicio.

Artículos Relacionados