O que são ACLs do HAProxy?
No HAProxy, Listas de Controle de Acesso (ACLs) são a base do roteamento inteligente, permitindo inspecionar solicitações para segurança ou roteamento.
Sintaxe Básica
acl <nome_acl> <criterio> [flags] <valor>
Casos de Uso Comuns
1. Roteamento por Domínio
frontend main_frontend
bind *:80
acl is_blog hdr(host) -i blog.exemplo.com
use_backend blog_servers if is_blog
2. Roteamento por Caminho
frontend main_frontend
bind *:80
acl app_api path_beg /api/
use_backend api_servers if app_api
3. Bloqueio de IPs
frontend main_frontend
bind *:80
acl blocked_ip src 203.0.113.50
http-request deny if blocked_ip
4. Redirecionamento HTTP para HTTPS
frontend http_in
bind *:80
http-request redirect scheme https code 301 if !{ ssl_fc }
5. Roteamento 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
Resumo
- ACLs extraem dados da requisição e disparam ações.
- Sempre teste a sintaxe com
haproxy -cantes de recarregar.