Publié le : 06/12/2024 à 10:00 Mis à jour le : 07/06/2026 à 13:41 Vues : 523

Apprenez à utiliser les Access Control Lists (ACL) pour créer des règles de routage intelligentes basées sur l'URL, les headers ou l'IP.

1. Le concept d'ACL

Une ACL est une condition testée sur le flux de données.

Syntaxe de base

Une ACL se compose de trois éléments : le nom, la méthode d'extraction (fetch) et la valeur à comparer. Elle renvoie soit vrai, soit faux.

acl est_image path_end .jpg .png .gif
use_backend static_servers if est_image

2. Les critères de sélection courants

Les fonctions 'fetch' les plus utilisées en production.

Routage par nom de domaine (Host)

Idéal pour héberger plusieurs sites sur une seule IP.

acl host_api hdr(host) -i api.domaine.com
use_backend api_cluster if host_api

Routage par chemin (Path)

Permet de séparer les microservices.

acl is_blog path_beg /blog
use_backend blog_servers if is_blog

3. Opérateurs logiques

Combiner plusieurs ACLs pour des règles complexes.

ET, OU et NON

Par défaut, lister plusieurs ACLs sur une ligne équivaut à un ET. Utiliser plusieurs lignes use_backend équivaut à un OU.

# Condition ET : l'IP est autorisée ET le chemin est /admin
acl is_admin path_beg /admin
acl is_local src 192.168.1.0/24
http-request deny if is_admin !is_local

Conclusion

La flexibilité du routage.

Puissance des ACLs

Les ACLs permettent de transformer HAProxy en un véritable pare-feu applicatif (WAF) basique ou en un routeur de microservices extrêmement performant.

Lien copié dans le presse-papiers !