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