Qu'est-ce que HAProxy
HAProxy est un équilibreur de charge léger avec du code open-source. Vous pouvez l'utiliser pour construire une infrastructure de tolérance aux pannes ou "cacher" le véritable "emplacement" du projet pour des raisons de sécurité. Dans cet article, je vais vous décrire comment déployer un équilibreur de charge pour un projet Web, situé sur deux serveurs indépendants.
Exigences de base
Si vous souhaitez utiliser HAProxy, vous devez vous assurer que votre infrastructure respecte les conditions suivantes :
- Vous avez besoin d'au moins trois serveurs - deux d'entre eux en tant que "serveurs principaux" de votre projet et le dernier en tant qu'équilibreur HAProxy ;
- Nom de domaine avec A-records "pointé" vers l'IP de l'équilibreur ;
- Le contenu de votre site Web doit être "déployé" sur les deux serveurs Web.
Préparation du réseau
Avant de commencer la configuration de HAProxy, nous devons définir certaines "variables" telles que les adresses IP et les noms des serveurs. Donc, l'instruction étape par étape est:
- Créez trois serveurs via clizone ent. Deux d'entre eux fonctionneront comme "backend", le troisième serveur est l'équilibreur HAProxy. Schéma final de l'infrastructure sur l'image ci-dessous :
- Modifier / Etc / hosts fichiers sur chacun des trois serveurs, associez les adresses IP aux noms d'hôte des serveurs. Vérifiez ensuite l'accessibilité des serveurs, exécutez SSH-console au serveur haproxy et envoie des paquets ICMP aux travailleurs "backend" ;
cat <<EOF >> /etc/hosts
<backend_server_one_IP> <backend_server_one_hostname>
<backend_server_two_IP> <backend_server_two_hostname>
<haproxy_server_IP> <haproxy_server_hostname>
EOF
ping <LAN_servers_IPs>
- Création firewall règle pour bloquer tout le trafic entrant vers les serveurs "backend", en plus de haproxy. Facultatif, pour rendre la gestion plus confortable, vous pouvez ajouter votre propre adresse IP à la liste blanche. Pour ce faire, le moyen le plus simple est d'accéder aux paramètres de détails de votre serveur, d'ajouter les règles et click à la SAUVEGARDER bouton. N'oubliez pas que les règles d'autorisation doivent être définies avant de refuser.
Déploiement de site Web
- Si vous avez mis votre propre adresse IP sur liste blanche comme décrit, le moyen le plus simple de déployer un serveur Web et de gérer des sites consiste à installer n'importe quel panneau Web, par exemple HestiaCP. Installez-le sur le premier serveur "backend" comme décrit ici, puis autorisez dans le panneau et créez un utilisateur non privilégié ;
- Connectez-vous avec ce compte ;
- Créer un site Web ;
- Répétez le déploiement du site Web sur le deuxième serveur "backend" ;
Configuration HAProxy
Il est maintenant temps d'installer l'équilibreur de charge. Veuillez suivre ceux-ci :
- Connectez-vous à la console du serveur HAProxy, puis mettez à jour les packages existants ;
apt-get update; apt upgrade -y
- Installer le logiciel de l'équilibreur ;
apt-get install haproxy -y
- Modifiez la configuration HAProxy, ajoutez simplement le code suivi à l'intérieur ;
frontend haproxy_web
bind <haproxy_IP>:80
default_backend web_back
mode http
backend web_back
balance roundrobin
server <backend_server_one_hostname> <backend_server_one_IP>:80
server <backend_server_two_hostname> <backend_server_two_IP>:80
- Activer et démarrer le service HAProxy ;
service haproxy start; systemctl enable haproxy
Vérification de l'équilibreur
Vous pouvez maintenant ouvrir votre site Web dans le navigateur. Il s'ouvrira avec succès, mais vous ne pouvez pas vous assurer que l'équilibreur fonctionne bien. À des fins de test, vous pouvez suivre :
- Connectez-vous au serveur "backend" via SSH, accédez au répertoire du site Web et renommez le fichier d'index ;
cd <website_root_dir>
mv <index_filename> <index_filename.bkp>
- Créez un nouveau fichier d'index avec l'adresse IP du serveur ;
echo $(hostname) > index file
- Connectez-vous à l'autre serveur "backend" via SSH et renommez également le fichier d'index ;
- Ouvrez votre site Web dans le navigateur, puis "actualisez" la page plusieurs fois. Tu verras différent informations. Cela signifie que l'équilibreur fonctionne ;
- Renvoie les fichiers d'index "d'origine" :
rm <index file>
mv <index_filename.bkp> <index_filename>
finalement
Après avoir lu cet article, vous saviez ce qu'est HAProxy et pouvez installer cet équilibreur de charge sur le serveur sous Ubuntu 20.04 SE.