Procédure : Mise en place d’une répartition de charge avec HAProxy

HAProxy est un logiciel de répartition de charge et de proxy inverse open source, largement utilisé pour distribuer le trafic réseau entre plusieurs serveurs afin d’optimiser la disponibilité et la performance des applications. En redirigeant les requêtes des utilisateurs vers différents serveurs backend, HAProxy permet d’assurer une haute disponibilité et une tolérance aux pannes, tout en équilibrant la charge de manière efficace. Il est particulièrement apprécié pour sa fiabilité, sa flexibilité, et sa capacité à gérer un grand volume de trafic avec des fonctionnalités avancées comme la gestion des sessions et le SSL offloading.

Objectif

Optimiser les performances du site web de TechUniverse en répartissant la charge entre deux serveurs Web grâce à HAProxy.

1. Préparation réseau des serveurs Web

a. Vérification de la configuration réseau (DHCP)

Dans le terminal, vérifie que l’interface réseau utilise DHCP :

ip a

b. Redémarrer l’interface réseau

sudo systemctl restart networking

c. Vérification de la connectivité Internet

ping 8.8.8.8

2. Installation d’Apache2 sur les serveurs Web

Sur chaque serveur Web :

sudo apt update
sudo apt install apache2 -y

d. Vérification du service Apache2

sudo systemctl status apache2

e. Test d’accès via navigateur

Saisir l’adresse IP du serveur Web dans un navigateur. La page par défaut d’Apache2 doit s’afficher.

3. Sauvegarde de la configuration Apache2

Avant modification :

sudo cp -r /etc/apache2 /etc/apache2.backup

4. Connexion SSH aux serveurs Web

Depuis la machine hôte, se connecter aux serveurs Web :

ssh user@adresse_IP_du_serveur

5. Installation et configuration d’HAProxy (sur un serveur dédié)

a. Installer HAProxy

sudo apt install haproxy -y

b. Modifier la configuration HAProxy

Éditer le fichier :

sudo nano /etc/haproxy/haproxy.cfg

Ajouter une configuration simple comme :

frontend http_front
bind *:80
default_backend http_back

backend http_back
balance roundrobin
server web1 192.168.1.10:80 check
server web2 192.168.1.11:80 check

Remplace 192.168.1.10 et 192.168.1.11 par les adresses IP de tes deux serveurs Web.

c. Redémarrer HAProxy

sudo systemctl restart haproxy

d. Vérification

Depuis un navigateur ou via curl :

curl http://adresse_IP_du_HAProxy