HAProxy

Comment configurer HAProxy en tant qu'équilibreur de charge pour Nginx dans CentOS 8

Comment configurer HAProxy en tant qu'équilibreur de charge pour Nginx dans CentOS 8
High Availability Proxy, également abrégé en HAProxy est un équilibreur de charge léger et rapide qui sert également de serveur proxy. En tant qu'équilibreur de charge, il joue un rôle crucial dans la distribution du trafic Web entrant sur plusieurs serveurs Web en utilisant certains critères. Ce faisant, il garantit une haute disponibilité et une tolérance aux pannes en cas de trop grand nombre de demandes simultanées pouvant surcharger un seul serveur Web.

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 à l'aide de Nginx.

Configuration du laboratoire

3 instances de serveurs CentOS 7 comme indiqué

Nom d'hôte           Adresses IP
load_balancer      3.17.12.132
server_01          3.19.229.234
server_02          3.17.9.217

Étape 1 : modifiez 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é

$ vim /etc/hosts
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/hôtes fichier avec l'adresse IP et le nom d'hôte de l'équilibreur de charge

3.17.12.132   équilibreur de charge

Ensuite, confirmez que vous pouvez envoyer un ping à l'équilibreur de charge à partir du serveur_01

Et de même depuis server_02

Assurez-vous également que vous pouvez effectuer un ping sur les serveurs à partir de l'équilibreur de charge.

Parfait ! tous les serveurs peuvent communiquer avec l'équilibreur de charge!

Étape 2 : Installer et configurer le proxy HA sur l'équilibreur de charge

Étant donné que le proxy HA 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 le système à jour

# miam mise à jour

Ensuite, installez HA Proxy comme indiqué

# miam installer haproxy

Une fois l'installation réussie, accédez au répertoire haproxy.

# cd /etc/haproxy

Les meilleures pratiques nous obligent à sauvegarder tout fichier de configuration avant d'apporter des modifications.  Alors sauvegardez le happroxy.cfg fichier en le renommant.

# mv haproxy.cfg haproxy.cfg.bak

Ensuite, continuez et ouvrez le fichier de configuration

vim haproxy.cfg

Assurez-vous de faire la modification comme indiqué

#---------------------------------------------------------------------
# Paramètres globaux
#---------------------------------------------------------------------
global
journal         127.0.0.1 local2     #Configuration du journal
 
chroot      /var/lib/haproxy
pidfile     /var/run/haproxy.pid
maxconn     4000
user        haproxy             #Haproxy exécuté sous l'utilisateur et le groupe "haproxy"
groupe       happroxy
démon
 
# activer le socket unix des statistiques
socket de statistiques /var/lib/haproxy/stats
 
#---------------------------------------------------------------------
# valeurs par défaut communes que toutes les sections « listen » et « backend » seront
# utiliser si non désigné dans leur bloc
#---------------------------------------------------------------------
valeurs par défaut
mode                    http
log                     global
option                  httplog
option                  dontlognull
option http-server-close
option forwardfor       sauf 127.0.0.0/8
option                  réexpédition
nouvelles tentatives                 3
délai d'attente http-requête    10 s
file d'attente de délai d'attente           1 minute
délai d'attente de connexion         10 s
client de délai d'attente          1 minute
serveur de délai d'attente          1 minute
délai d'attente http-keep-alive 10s
vérification du délai d'attente           10 s
maxconn                 3000
 
#---------------------------------------------------------------------
#HAProxy Monitoring Config
#---------------------------------------------------------------------
listen haproxy3-monitoring *:8080                #Haproxy Monitoring s'exécute sur le port 8080
mode http
option avant pour
option httpfermer
les statistiques activent
stats show-légendes
actualisation des statistiques 5s
stats uri /stats                            #URL pour la surveillance HAProxy
stats royaume Haproxy\ Statistiques
stats auth Password123 : Password123#User et Password pour se connecter au tableau de bord de surveillance
stats admin si VRAI
default_backend app-main                    #Ceci est facultativement pour la surveillance du backend
 
#---------------------------------------------------------------------
# Configuration frontale
#---------------------------------------------------------------------
frontend principal
lier *:80
option http-server-close
option avant pour
default_backend app-main
 
#---------------------------------------------------------------------
# BackEnd round robin comme algorithme d'équilibre
#---------------------------------------------------------------------
application principale principale
balance roundrobin                         #Balance algorithm
option httpchk HEAD / HTTP/1.1\r\nHôte :\ hôte local
#Vérifiez que l'application serveur est opérationnelle et en bonne santé - 200 code d'état
serveur serveur_01 3.19.229.234:80 vérifier               #Nginx1
serveur serveur_02 3.17.9.217:80 vérifier                 #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 sera de configurer Rsyslog pour pouvoir enregistrer les statistiques HAProxy.

# vim /etc/rsyslog.conf

Assurez-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  happroxy.conf

# vim  /etc/rsyslog.d/happroxy.conf

Collez les lignes suivantes, enregistrez et quittez

local2.=info   /var/log/haproxy-access.log   #Pour le journal d'accès
local2.avis  /var/log/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 rsyslog

Puis démarrez et activez HAProxy

# systemctl démarrer rsyslog
# systemctl activer rsyslog

Vérifiez que HAProxy est en cours d'exécution

# systemctl status rsyslog

Étape 3 : Installez et configurez 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 à jour

Prochaine installation EPEL (Packages supplémentaires pour Enterprise Linux)

# miam installer epel-release

Pour installer Nginx, exécutez la commande :

# miam installer nginx

Ensuite, démarrez et activez Nginx

# systemctl démarrer nginx
# systemctl activer nginx

Nous allons ensuite modifier l'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

# echo "serveur_01. Hey ! Bienvenue sur le premier serveur Web" > index.html

Pour le serveur_02

# echo "serveur_02. Hey ! Bienvenue sur le deuxième serveur Web" > index.html

Pour que les modifications soient effectuées, 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. Connectez-vous donc à l'équilibreur de charge et exécutez la commande curl à plusieurs reprises

# boucle 3.17.12.132

Vous devriez obtenir une sortie alternative sur le terminal indiquant la valeur de l'index.html de server_01 et server_02

Testons maintenant à l'aide d'un navigateur Web. Parcourir l'adresse IP de votre équilibreur de charge

http://load-balancer-IP-address

La première page affichera le contenu de l'un des serveurs Web


Actualisez maintenant la page Web et vérifiez si elle affiche le contenu de l'autre serveur Web

Parfait ! L'équilibre de charge répartit le trafic IP de manière égale 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.

Meilleures applications de mappage de manette de jeu pour Linux
Si vous aimez jouer à des jeux sur Linux avec une manette de jeu au lieu d'un système de saisie clavier et souris typique, il existe des applications ...
Outils utiles pour les joueurs Linux
Si vous aimez jouer à des jeux sur Linux, il est probable que vous ayez utilisé des applications et des utilitaires comme Wine, Lutris et OBS Studio p...
Jeux HD remasterisés pour Linux qui n'ont jamais eu de version Linux plus tôt
De nombreux développeurs et éditeurs de jeux proposent une remasterisation HD d'anciens jeux pour prolonger la durée de vie de la franchise, veuillez ...