Comment configurer HAProxy comme équilibreur de charge pour Nginx dans CentOS 8

Comment Configurer Haproxy Comme Equilibreur De Charge Pour Nginx Dans Centos 8



Le proxy haute disponibilité, é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 nombreuses requêtes simultanées susceptibles de 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 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 charge

Ensuite, 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 à 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

La 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.bak

Ensuite, continuez et ouvrez le fichier de configuration

car haproxy.cfg

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

# car / etc / rsyslog.d / haproxy.conf

Collez les lignes suivantes, enregistrez et quittez

local2.=infos / a été / Journal / haproxy-access.log #Pour le journal d'accès
local2.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 rsyslog

Ensuite, 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 à jour

Ensuite, installez EPEL (Extra Packages for Enterprise Linux)

# miam installer libération chaude

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 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.html

Pour le serveur_02

# écho 'server_02. Hey ! Bienvenue sur le deuxième serveur Web' > index.html

Pour 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.132

Vous 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 charge

La 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.