Comment configurer Haproxy comme équilibreur de charge pour Nginx dans Centos 8

Comment configurer Haproxy comme équilibreur de charge pour Nginx dans Centos 8
Le proxy de haute disponibilité, également abrégé en tant que Haproxy est un équilibreur léger et à charge rapide qui se double également d'un 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 grande disponibilité et une tolérance aux défauts dans le cas où il y a trop de demandes simultanées qui peuvent surcharger un seul serveur Web.

Haproxy est utilisé par des sites populaires tels que Tumblr, Github et StackOverflow. Dans ce guide, nous vous emmènerons à travers l'installation de Haproxy dans une configuration de serveurs Web qui sont alimentés à l'aide de Nginx.

Configuration de laboratoire

3 instances de serveurs Centos 7 comme indiqué

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

Étape 1: Modifiez le fichier / etc / hôtes pour l'équilibreur de chargement

Pour commencer, connectez-vous au système Balancer Load et modifiez le fichier / etc / hôtes pour inclure les noms d'hôte et les adresses IP des deux serveurs Web comme indiqué

$ vim / etc / hôtes
3.19.229.234 Server_01
3.17.9.217 Server-02

Une fois terminé, enregistrez les modifications et quittez le fichier de configuration.

Maintenant, dirigez-vous vers 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 chargement

3.17.12.132 Balancer de chargement

Par la suite, confirmez que vous pouvez faire un ping-ping l'équilibreur de charge à partir de server_01

Et de même à partir de server_02

Assurez-vous également, vous pouvez cingler les serveurs 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 chargement

Parce que HA Proxy est facilement disponible dans le référentiel officiel de CentOS, nous allons l'installer en utilisant le gestionnaire de packages Yum ou DNF.

Mais comme toujours, mettez à jour le système d'abord

# mise à jour

Ensuite, installez le proxy HA comme indiqué

# yum install haproxy

Lors de l'installation réussie, accédez au répertoire Haproxy.

# cd / etc / haproxy

La meilleure pratique nous oblige à sauvegarder n'importe quel fichier de configuration avant d'apporter des modifications. Donc, sauvegarde le haproxy.CFG dossier en le renommant.

# mv haproxy.haproxy CFG.CFG.bak

Ensuite, procédez et ouvrez le fichier de configuration

vim haproxy.CFG

Assurez-vous de faire la modification comme indiqué

#---------------------------------------------------------------------
# Paramètres globaux
#---------------------------------------------------------------------
mondial
journal 127.0.0.1 configuration locale2 #log
chroot / var / lib / haproxy
pidfile / var / run / haproxy.piquer
Maxconn 4000
Haproxy utilisateur #haproxy fonctionnant sous l'utilisateur et le groupe "haproxy"
Haproxy de groupe
démon
# Activer les statistiques Unix Socket
Statistiques / var / lib / haproxy / statistiques
#---------------------------------------------------------------------
# par défaut communs que toutes les sections «écouter» et «backend»
# Utiliser s'il n'est pas désigné dans leur bloc
#---------------------------------------------------------------------
par défaut
mode http
journal mondial
Option httplog
Option Dontlognull
option http-server-close
Option Forwardfor Sauf 127.0.0.0/8
Option Redispatch
Retries 3
Timeout http-request 10s
Fitulature de délai de temps 1m
Timeout Connect 10s
Timeout Client 1M
Serveur de délai d'expiration 1m
Timeout http-gardien 10s
chèque de temps mort 10s
MaxConn 3000
#---------------------------------------------------------------------
Configuration de surveillance #haproxy
#---------------------------------------------------------------------
Écouter Haproxy3-montring *: 8080 #haproxy surveillance exécuter sur le port 8080
mode http
Option Forward pour
Option httpclose
Les statistiques activent
statistiques show-legends
statistiques rafraîchis 5s
statistiques uri / statistiques #url pour la surveillance de Haproxy
statistiques du royaume haproxy \ statistiques
Stats Auth Password123: Password123 # utilisateur et mot de passe pour se connecter au tableau de bord de surveillance
Admin des statistiques si vraie
Default_backend App-main # Il est éventuellement de surveiller le backend
#---------------------------------------------------------------------
# Configuration du frontend
#---------------------------------------------------------------------
frontend principal
lier *: 80
option http-server-close
Option Forward pour
default_backend App-main
#---------------------------------------------------------------------
# Backend Round Robin comme algorithme d'équilibre
#---------------------------------------------------------------------
application backend
Balance Roundrobin #Balance Algorithme
Option Httpchk Head / Http / 1.1 \ r \ nhost: \ localhost
#Check L'application du serveur est en place et Healty - 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. Enregistrer les modifications et quitter.

La prochaine étape sera de configurer RSYSLOG pour pouvoir enregistrer les statistiques Haproxy.

# vim / etc / rsyslog.confli

Assurez-vous de décomiser les lignes ci-dessous pour permettre des connexions UDP

$ Modload iMudp
$ Udpserverrun 514

Ensuite, procédez et créez un nouveau fichier de configuration haproxy.confli

# vim / etc / rsyslog.d / haproxy.confli

Collez les lignes suivantes, sauvegarde et quitte

local2.= info / var / log / haproxy-Access.Journal # pour le journal d'accès
local2.Avis / var / log / haproxy-info.Journal # pour les informations de service - backend, chargebalancer

Pour que les modifications prennent effet, redémarrez le démon Rsyslog comme indiqué:

# systemctl redémarrer rsyslog

Puis démarrer et activer haproxy

# systemctl start rsyslog
# SystemCTL Activer RSYSLOG

Vérifiez que Haproxy fonctionne

# Statut 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 à mettre à jour les packages système:

# mise à jour

Installez ensuite EPEL (packages supplémentaires pour Enterprise Linux)

# yum installer EPEL-Release

Pour installer nginx, exécutez la commande:

# yum install nginx

Ensuite, démarrez et activez Nginx

# systemctl start nginx
# SystemCTL Activer Nginx

Nous allons ensuite modifier l'index.Fichier HTML dans les deux cas afin de démontrer ou de simuler comment l'équilibreur de charge est en mesure de distribuer le trafic Web sur les deux serveurs.

Pour server_01

# echo "Server_01. Hé ! Bienvenue sur le premier serveur Web "> Index.html

Pour server_02

# echo "Server_02. Hé ! Bienvenue dans le deuxième serveur Web "> Index.html

Pour que les modifications soient effectuées, redémarrez Nginx

# systemctl redémarrer nginx

Étape 4: Test si l'équilibreur de chargement 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

# curl 3.17.12.132

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

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

http: // load-balancer-ip-address

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


Maintenant, actualisez la page Web et vérifiez si elle affiche le contenu de l'autre serveur Web

Parfait ! Le solde de charge distribue également le trafic IP entre les deux serveurs Web !
Cela conclut ce tutoriel sur la façon dont vous pouvez installer ainsi que la configuration de Haproxy sur Centos 8. Vos commentaires seront très appréciés.