HaProxy est utilisé par des sites populaires tels que Tumblr, GitHub et StackOverflow. Dans ce guide, nous vous expliquerons l'installation de HAProxy dans une configuration de serveurs Web alimentés par Nginx.
Configuration du laboratoire
3 instances de serveurs CentOS 7 comme indiqué
Nom d'hôte Adresses IP
load_balancer 3.17.12.132
serveur_01 3.19.229.234
serveur_02 3.17.9.217
Étape 1 : Modifier le fichier /etc/hosts pour l'équilibreur de charge
Pour commencer, connectez-vous au système d'équilibrage de charge et modifiez le fichier /etc/hosts pour inclure les noms d'hôte et les adresses IP des deux serveurs Web, comme indiqué.
$ car / etc / hôtes
3.19.229.234 serveur_01
3.17.9.217 serveur-02
Une fois cela fait, enregistrez les modifications et quittez le fichier de configuration.
Rendez-vous maintenant sur chacun des serveurs Web et mettez à jour le /etc/hosts fichier avec l'adresse IP et le nom d'hôte de l'équilibreur de charge
3.17.12.132 équilibreur de chargeEnsuite, confirmez que vous pouvez pinguer l'équilibreur de charge à partir du serveur_01
Et de même depuis server_02
Assurez-vous également que vous pouvez envoyer un ping aux serveurs à partir de l'équilibreur de charge.
Parfait ! tous les serveurs peuvent communiquer avec le load balancer !
Étape 2 : Installer et configurer le proxy HA sur l'équilibreur de charge
Étant donné que HA Proxy est facilement disponible à partir du référentiel officiel CentOS, nous allons l'installer à l'aide du gestionnaire de packages yum ou dnf.
Mais comme toujours, mettez d'abord à jour le système
# miam mise à jourEnsuite, installez HA Proxy comme indiqué
# miam installer haproxyUne fois l'installation réussie, accédez au répertoire haproxy.
# CD / etc / haproxyLa meilleure pratique nous oblige à sauvegarder tout fichier de configuration avant d'apporter des modifications. Sauvegardez donc le haproxy.cfg fichier en le renommant.
# m.v. haproxy.cfg haproxy.cfg.bakEnsuite, continuez et ouvrez le fichier de configuration
car haproxy.cfgAssurez-vous de faire la modification comme indiqué
#-------------------------------------------------------------- --------------------# Paramètres globaux
#-------------------------------------------------------------- --------------------
global
journal 127.0.0.1 local2 #Configuration du journal
chrooter / a été / bibliothèque / haproxy
fichier pid / a été / Cours / haproxy.pid
max conn 4000
utilisateur haproxy #Haproxy exécuté sous l'utilisateur et le groupe 'haproxy'
groupe haproxy
démon
# activer les statistiques socket unix
prise de statistiques / a été / bibliothèque / haproxy / Statistiques
#-------------------------------------------------------------- --------------------
# valeurs par défaut communes que toutes les sections 'listen' et 'backend' utiliseront
# utiliser si non désigné dans leur bloc
#-------------------------------------------------------------- --------------------
valeurs par défaut
mode http
journal global
option httplog
option dontlognull
option http-server-close
option de transfert pour sauf 127.0.0.0 / 8
option réexpédition
tentatives 3
timeout http-request 10s
file d'attente d'expiration 1 m
délai de connexion 10 s
délai client 1 m
délai d'attente du serveur 1 m
timeout http-keep-alive 10s
vérification du délai d'attente 10 s
max conn 3000
#-------------------------------------------------------------- --------------------
Configuration de la surveillance #HAProxy
#-------------------------------------------------------------- --------------------
écouter haproxy3-monitoring * : 8080 #Haproxy Monitoring exécuté sur le port 8080
http
option de renvoi pour
option httpfermer
Statistiques activer
stats show-légendes
stats actualiser 5s
uri de statistiques / Statistiques #URL pour la surveillance HAProxy
domaine de statistiques Haproxy\ Statistiques
authentification des statistiques Mot de passe123 : Mot de passe123 #Utilisateur et mot de passe pour la connexion au tableau de bord de surveillance
administrateur des statistiques si vrai
application principale default_backend #Ceci est optionnel pour surveiller le backend
#-------------------------------------------------------------- --------------------
# Configuration frontale
#-------------------------------------------------------------- --------------------
interface principale
lier * : 80
option http-server-close
option de renvoi pour
application principale default_backend
#-------------------------------------------------------------- --------------------
# BackEnd round robin comme algorithme d'équilibrage
#-------------------------------------------------------------- --------------------
application principale principale
équilibre à tour de rôle #Algorithme d'équilibre
option httpchk HEAD / HTTP / 1.1 \r\nHôte :\ hôte local
#Vérifiez que l'application serveur est opérationnelle et saine - code d'état 200
serveur serveur_01 3.19.229.234 : 80 Chèque #Nginx1
serveur serveur_02 3.17.9.217 : 80 Chèque #Nginx2
Assurez-vous de modifier le nom d'hôte et les adresses IP des serveurs Web comme indiqué dans les deux dernières lignes. Enregistrez les modifications et quittez.
La prochaine étape consistera à configurer Rsyslog pour pouvoir consigner les statistiques HAProxy.
# car / etc / rsyslog.confAssurez-vous de décommenter les lignes ci-dessous pour autoriser les connexions UDP
$ModLoad imudp$UDPServerRun 514
Ensuite, continuez et créez un nouveau fichier de configuration haproxy.conf
# car / etc / rsyslog.d / haproxy.confCollez les lignes suivantes, enregistrez et quittez
local2.=infos / a été / Journal / haproxy-access.log #Pour le journal d'accèslocal2.notice / a été / Journal / haproxy-info.log #For Service Info - Backend, loadbalancer
Pour que les modifications prennent effet, redémarrez le démon rsyslog comme indiqué :
# systemctl redémarrer rsyslogEnsuite, démarrez et activez HAProxy
# systemctl démarre rsyslog# systemctl active rsyslog
Vérifiez que HAProxy est en cours d'exécution
# état systemctl rsyslogÉtape 3 : Installer et configurer Nginx
Maintenant, la seule partie restante est l'installation de Nginx. Connectez-vous à chacun des serveurs et mettez d'abord à jour les packages système :
# miam mise à jourEnsuite, installez EPEL (Extra Packages for Enterprise Linux)
# miam installer libération chaudePour installer Nginx, exécutez la commande :
# miam installer nginxEnsuite, démarrez et activez Nginx
# systemctl démarrer nginx# systemctl activer nginx
Nous allons ensuite modifier le fichier index.html dans les deux cas afin de démontrer ou de simuler comment l'équilibreur de charge est capable de répartir le trafic Web sur les deux serveurs.
Pour le serveur_01
# écho 'server_01. Hey ! Bienvenue sur le premier serveur Web' > index.htmlPour le serveur_02
# écho 'server_02. Hey ! Bienvenue sur le deuxième serveur Web' > index.htmlPour que les changements soient effectués, redémarrez Nginx
# systemctl redémarrer nginxÉtape 4 : Tester si l'équilibreur de charge fonctionne
Nous sommes enfin au point où nous voulons voir si la configuration fonctionne. Alors connectez-vous à l'équilibreur de charge et exécutez la commande curl à plusieurs reprises
# boucle 3.17.12.132Vous devriez obtenir une sortie alternée sur le terminal indiquant la valeur de index.html de server_01 et server_02
Testons maintenant avec un navigateur Web. Parcourir l'adresse IP de votre équilibreur de charge
http : // adresse IP de l'équilibreur de chargeLa première page affichera le contenu de n'importe lequel des serveurs Web
Maintenant, actualisez la page Web et vérifiez si elle affiche le contenu de l'autre serveur Web
Parfait ! Le load balance répartit équitablement le trafic IP entre les deux serveurs web !
Ceci conclut ce tutoriel sur la façon dont vous pouvez installer et configurer HAProxy sur CentOS 8. Vos commentaires seront très appréciés.