L'équilibrage de charge est la pratique la plus courante de distribution du trafic Web entrant entre plusieurs serveurs principaux. Cela rend l'application hautement disponible même si certains serveurs tombent en panne pour une raison quelconque. L'équilibrage de charge augmente l'efficacité et la fiabilité d'une application Web. L'équilibreur de charge HAProxy est utilisé dans le même but. C'est l'équilibreur de charge le plus utilisé dans les industries. Selon le site officiel, HAProxy est utilisé par des sociétés de premier plan comme AWS, Fedora, Github et bien d'autres.
HAProxy ou High Availability Proxy fournit une solution de haute disponibilité et de proxy. Il est écrit en C et fonctionne sur les couches réseau et application du modèle TCP/IP. La meilleure chose est qu'il a une édition communautaire gratuite, et c'est une application open source. Il fonctionne sur les systèmes d'exploitation Linux, FreeBSD et Solaris. L'édition entreprise est également là, mais elle a un prix.
Dans ce guide, nous verrons Comment installer HAProxy et configurer le serveur d'équilibrage de charge sur Debian 10.
Conditions préalables:
- accès « sudo » à toutes les machines et connaissance de base de l'exécution des commandes dans le terminal Linux.
- Adresses IP privées ajoutées aux serveurs d'équilibrage de charge et d'arrière-plan.
- Système d'exploitation Debian 10 installé sur toutes les machines.
Installation de HAProxy sur Debian 10
Pour notre guide, nous supposerons la configuration d'adresse IP suivante :
- Équilibreur de charge HAProxy 10.0.12.dix
- Serveur Web1 : Adresse IP : 10.0.12.15
- Serveur Web2 : Adresse IP : 10.0.12.16
Étape 1. Mettre à jour le référentiel et les packages du système Debian
Tout d'abord, exécutez les commandes ci-dessous sur tous les systèmes pour mettre à jour les packages logiciels vers le dernier.
$ sudo apt mise à jour$ sudo apt upgrade -y
Étape : 2 Installez Nginx sur les serveurs principaux
Préparez vos serveurs principaux en installant le serveur Web Nginx sur chacun. Vous pouvez également choisir d'installer d'autres serveurs Web comme Apache.
Pour installer Nginx, exécutez les commandes suivantes sur chaque serveur principal de votre environnement :
$ sudo apt installer nginxÉtape : 3 Une fois Nginx installé sur vos serveurs principaux, démarrez le service, comme indiqué ci-dessous :
$ sudo systemctl start nginxASTUCE: Nous pouvons également gérer le serveur Web nginx à l'aide de la commande ci-dessous :
$ sudo /etc/init.d/nginx « option »option : démarrer recharger redémarrer état arrêter
Étape : 4 Créez des pages d'index personnalisées dans le dossier Web de chaque serveur Web Nginx. Cela nous aidera à distinguer quel serveur principal sert les demandes entrantes.
Sur chaque serveur Web, effectuez les tâches suivantes :
Sauvegardez le fichier d'index d'origine à l'aide de la commande suivante :
$ sudo cp /usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.origAjouter du texte personnalisé à l'index.fichier html. Nous ajoutons l'adresse IP de chaque serveur Web.
Pour le serveur Web 1 :
$ sudo echo "Serveur Web 1 : 10.0.12.15" | sudo tee /usr/share/nginx/html/index.htmlPour le serveur Web 2 :
$ sudo echo "Serveur Web 2: 10.0.12.16" | sudo tee /usr/share/nginx/html/index.htmlVous pouvez également utiliser l'éditeur vi si vous vous sentez plus à l'aise avec cela. Ceci est montré ci-dessous :
$ sudo vi /usr/share/nginx/html/index.htmlLorsque le fichier est ouvert, entrez le texte et enregistrez le fichier.
Ouvrez le fichier d'hôte virtuel par défaut dans le répertoire "/etc/nginx/sites-available/".
$ sudo nano /etc/nginx/sites-available/defaultMaintenant, à l'intérieur du bloc serveur, changez la directive racine de "/var/www/html" en "/usr/share/nginx/html".
Pour vérifier la configuration de Nginx, exécutez la commande suivante :
$ sudo nginx -tÉtape 5 : Redémarrez maintenant le service à l'aide de la commande :
$ sudo systemctl redémarrer nginxVous pouvez vérifier l'état de nginx à l'aide de la commande suivante :
$ sudo systemctl status nginxÉtape : 6 Pour installer HAProxy sur Debian 10 (Buster), exécutez la commande suivante sur l'équilibreur de charge.
$ sudo apt install haproxy -yConseil: Une fois HAProxy installé, vous pouvez gérer HAProxy via un script d'initialisation. Pour cela, définissez le paramètre « enabled » sur 1 dans « /etc/default/haproxy » comme indiqué ci-dessous :
$ sudo vi /etc/default/haproxyACTIVÉ=1
Maintenant, l'option suivante peut être utilisée avec un script d'initialisation :
$ sudo service haproxy "option."option : démarrer recharger redémarrer état arrêter
Étape : 7 Configurez maintenant l'équilibreur de charge HAProxy en modifiant le fichier de configuration par défaut de haproxy, je.e. "/etc/haproxy/haproxy.cfg". Pour modifier ce fichier, exécutez la commande suivante
$ sudo vi /etc/haproxy/haproxy.cfgConseil: Veuillez sauvegarder le fichier d'origine afin qu'en cas de problème, nous soyons tous en sécurité. Pour effectuer la sauvegarde, utilisez la commande suivante :
$ sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.origAllez maintenant à la fin du fichier et modifiez les informations suivantes :
serveur_local frontallier 10.0.12.10:80
mode http
serveur web default_backend
serveur web principal
mode http
équilibre
option avant pour
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https si ssl_fc
option httpchk HEAD / HTTP/1.1rnHôte :hôte local
serveur web1 10.0.12.15:80
serveur web2 10.0.12.16:80
Noter: N'oubliez pas de remplacer les adresses IP du fichier ci-dessus par celle que vous avez ajoutée à vos serveurs web.
Étape : 8 Vérifiez la syntaxe de configuration du fichier ci-dessus avec la commande suivante :
$ sudo haproxy -c -f /etc/haproxy/haproxy.cfgSi tout se passe bien, il affichera une sortie comme : « Le fichier de configuration est valide.” Si vous obtenez une erreur dans la sortie, revérifiez votre fichier de configuration et vérifiez-le à nouveau.
Étape : 9 Redémarrez maintenant le service HAProxy pour appliquer les modifications
$ sudo service haproxy redémarrageTest de la configuration
Il est maintenant temps de voir si notre configuration fonctionne correctement. Entrez l'IP du système d'équilibrage de charge sur un navigateur Web (dans notre cas, il s'agit de 10.0.12.10) et actualisez la page en continu 2 à 4 fois pour voir si l'équilibreur de charge HAProxy fonctionne correctement. Vous devriez voir différentes adresses IP ou le texte que vous avez entré dans l'index.html lorsque vous continuez à actualiser la page plusieurs fois.
Une autre façon de vérifier consiste à mettre un serveur Web hors ligne et à vérifier si un autre serveur Web répond aux demandes.
C'est tout pour le moment! Essayez d'expérimenter avec HAProxy pour en savoir plus sur son fonctionnement. Pour e.g., tu peux essayer:
- Intégration de différents serveurs Web à côté de nginx.
- Changer l'algorithme d'équilibrage de charge en quelque chose d'autre que le round-robin.
- Configuration du contrôle de santé HAProxy pour déterminer si un serveur principal fonctionne ou non.
- Application de sessions persistantes pour connecter un utilisateur au même serveur principal.
- Utilisation des statistiques HAProxy pour obtenir des informations sur le trafic sur les serveurs.
HAProxy dispose d'une documentation complète disponible pour l'édition communautaire HAProxy et la version entreprise HAProxy. Explorez cette documentation pour obtenir plus d'informations sur l'amélioration des performances et de la fiabilité de votre environnement de serveur.
Ce guide a été réalisé avec succès sur Debian 10 (Buster). Essayez d'installer HAProxy sur d'autres distributions basées sur Debian comme Ubuntu, Linux Mint, etc. N'oubliez pas de partager ce guide avec les autres.