Options

Haproxy a beaucoup d’options que nous pouvons utilise, il s’agit notamment de :

  • ACL qui permet de mieux gérer les requêtes entrantes et les regiriger vers certains server de backend
  • Forwrad for qui permet de transporter l’IP du client responsable de la requête entre le serveur Haproxy et le serveur de backend. Dans ce cas, Haproxy ne remplamcera plus l’ip du client par son ip.

Dans cette partie, nous allons juste voir comment implémenter des ACL, je vous recommande de vous rendre sur la documentation Haproxy pour plus d’informations sur ses fonctionnalités. Une ACL permet un meilleur filtrage et redirection des requêtes reçues au niveau du frontend. On peut notamment les filtrer suivant l’URL, ce que nous allons faire dans cet exemple… Pour un filtrage en fonction de 2 url à savoir : mct.aubinaso.fr et www.aubinaso.fr, on aura la configuration du frontend suivant :

frontend myapp_front
    bind *:80
    mode http

    acl myapp_front1 hdr_dom(host) -i mct.aubinaso.fr
    use_backend mybackend1 if myapp_front1

    acl myapp_front2 hdr_dom(host) -i www.aubinaso.fr
    use_backend mybackend2 if myapp_front2

La ligne mode http informe qu’il s’agit d’une acl appliquée à la couche 7. Nous avons rajouté 2 entrées pour loadbalancer sur 2 ACL. Les urls sont mct.aubinaso.fr et www.aubinaso.fr. nous créons donc 2 règles acl avec pour nom myapp_front1 et myapp_front2. Le mot clé hdr_dom(host) recupère les URL de la requête et en fonction de l’url, le client sera redirigé sur mybackend1 ou mybackend2.