Procédure d'installation de HAProxy

Formation

Tutorial Thumbnail

Dans cette formation, nous allons voir ensemble la création de A à Z d'un environnement de LoadBalacing avec deux serveurs Web Apache, comme démontré dans le schéma ci-dessus. Nos deux serveurs seront placé dans une DMZ en backend (derrière le serveur HAProxy) et donneront les ressources nécessaires au proxy frontal en interne, pour que celui-ci propose deux serveurs en redondance.


Mise en place de l'environnement système

Dans cette installation, nous aurons besoin de trois serveurs Linux (Debian 11 de préférence) :



Voici une idée du résultat de l'infrastructure VMware :


Installation de HAProxy

Pour procéder à l'installation de HAProxy sur une machine Linux, rien de plus simple avec la commande APT :

sudo apt install haproxy


On vérifie que les services sont en cours de lancement :

service haproxy status



Si le service n'est pas démarré, lancez la commande Shell :

service haproxy start
service haproy status


Une fois que HAProxy est démarré, il fait exactement 3 choses :

  • il traiter les connexions entrantes ;
  • il vérifier périodiquement l'état des serveurs (appelé "Heath checks") ;
  • échange des informations avec les autres nœuds HAProxy.

Un seul processus peut exécuter de nombreuses instances de proxy ; des configurations aussi grandes que 300000 proxies distincts dans un seul processus ont été signalés comme fonctionnant correctement. Une configuration à un seul

cœur et un seul processeur est bien plus que suffisante pour plus de 99 % des utilisateurs.


Installation des serveurs Web Apache

Dans cette démonstration, nous installeront deux serveurs Web APache2 sur lesquels nous afficherons une page HTML qui nous permettra de différencier les deux serveurs Web.


Pour cela on mets à jour la liste des dépôts et on installe le serveur Web Apache :

sudo apt update
sudo apt install apache2 -y


On modifie la page HTML par défaut de Apache afin de différencier les deux serveurs WEB :

cat > /var/www/html/index.html <<EOF
<h1>Serveur Web Apache2 pour HAProxy</h1>
<strong>Nom du serveur :</strong> $(hostname)<br>
<strong>Adresse IP :</strong> $(hostname -I | awk '{print $1}')<br>
EOF


Cette commande modifie le fichier index.html, celui par défaut de Apache, en ajoutant en plus de cela le nom de machine et l'adresse IP du serveur Web, récupéré par des variables systèmes.


Il est important de réaliser cette opération pour chaque serveur Web ! 😉


Voici un aperçu de nos serveurs Web en cours d'exécution :


Pour le serveur "Apache #1" :




Et ainsi que pour le serveur web "Apache #2" :



Architecture de HAProxy

La configuration des frontend et du backend de HAProxy se repose sur un seul et même fichier qui est haproxy.cfg, accessible vers /etc/haproxy/haproxy.cfg :



Vous pouvez gérer l'ensemble des services de HAProxy dans les fichiers de configuration suivants :

  • /etc/sysconfig : configuration du daemon
  • /etc/logrotate.d/haproxy : si utilisation de Logrotate
  • /var/lib/haproxy : données de HAProxy
  • /usr/sbin/haproxy : binaires de HAProxy
  • /usr/share/haproxy : modèles des pages d'erreurs propulsées par HAProxy


Voyons ensuite plus en détail la configuration du fichier haproxy.cfg afin de mettre un place un site load-balancé !

Niveau Débutant

Technologie utilisée :

Proposer une modification
Antoine
Par Antoine
Rédigé le Samedi 01 Octobre 2022