¿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_begpara URLs ysrcpara IPs. - Siempre pruebe la sintaxis con
haproxy -cantes de recargar el servicio.