Faire du load-balancing avec HAproxy

HAproxy est un logiciel permettant la répartition de charges (Load-Balancing) entre plusieurs serveurs web en répartissant les requêtes de façon quasiment transparente pour l’utilisateur.

Préparation

Au minimum, trois machines sont nécessaires : un serveur HAproxy et deux serveurs web vers lesquels les requêtes entrantes seront réparties.
Sur les deux serveurs web, il est nécessaire de faire fonctionner au minimum apache2 ayant chacun accès à un contenu identique (pour ne pas afficher deux versions du site.)

Le serveur HAproxy fait office de passerelle entre le réseau des serveurs web et le réseau externe. Il doit disposer de 2 interfaces réseaux : une pour faire face aux requêtes entrantes et l’autre qui communiquera avec les différents serveurs de la grappe.

Dans notre exemple, le serveur HAproxy aura pour IP “externe” (frontal web) 172.19.0.1 et pour IP “interne” (réseau serveurs web) 192.168.0.1

Les serveurs web auront pour IP:

192.168.0.10

192.168.0.20


Mise en place de l’équilibrage

Voici les étapes à suivre pour installer et lancer le serveur HAproxy afin de mettre en place de l’équilibrage des charges.

On change le nom de la machine HAproxy:

Pensez aussi à changer son nom dans /etc/hosts:

Installez le service HAproxy :

Pour qu’HAproxy soit considéré comme un service, à part entière :

Nous allons maintenant mettre en place un fichier de configuration basique afin de tester sur nos deux serveurs web.

Un autre mode de répartition peut être utilisé :
– mode “leastconn” : le serveur ayant eu le moins de connexion répondra aux requêtes en premier.


Connexion durable client-serveur

Certain usages nécessitent une connexion durable entre le client et le serveur (gestion des sessions, panier sur site e-commerce).
Pour répondre à cette problématique, nous pouvons envoyer un cookie à l’utilisateur.
En fonction du contenu de ce cookie, le répartiteur de charge pourra transférer les requêtes sur le serveur correspondant et le client pourra alors maintenir des échanges durables avec celui-ci.

Il vous suffit de rajouter ces lignes:

Pour vérifier la présence des cookies et de leurs actions sur un navigateur Firefox : Option > Vie privée > Affichage des cookies


Logs et stats

Il est possible de voir la répartition des charges des serveurs grâce à l’interface web d’HAproxy.

L’interface d’information générale d’HAproxy contient de nombreuses informations sur le fonctionnement des différents serveurs web et sur l’état de l’équilibrage des charges.

Pour consulter ces informations, il faut entrer se rendre à l’URL suivante :

http://$haproxy/stats/