GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer HAProxy sur CentOS 8

HAProxy signifie proxy haute disponibilité. Écrit en C, il s'agit d'un équilibreur de charge TCP/HTTP gratuit et open-source et d'une solution de proxy pour les applications basées sur TCP et HTTP. HAProxy est utilisé pour améliorer les performances d'un environnement de serveur en répartissant la charge de travail sur plusieurs serveurs.

HAProxy permet à une application de redémarrer automatiquement ou de rediriger le travail vers un autre serveur en cas de panne. Cet équilibreur de charge puissant, performant, fiable et sécurisé est le plus utilisé et a été spécialement conçu pour les sites Web à très fort trafic.

Dans ce tutoriel, nous allons vous montrer comment configurer un équilibreur de charge haute disponibilité avec HAProxy sur CentOS 8.

Prérequis

  • Trois nouveaux VPS CentOS 8 sur la plate-forme cloud Atlantic.Net
  • Un mot de passe root configuré sur chaque VPS

Pour ce didacticiel, nous utiliserons la configuration suivante :

Serveur HAProxy : – nom d'hôte :haproxy IP :192.168.0.10

Serveur Web 1 :- nom d'hôte :web1 IP :192.168.0.11

Serveur Web 2 :- nom d'hôte :web2 IP :192.168.0.12

Étape 1 - Créer un serveur cloud Atlantic.Net

Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant CentOS 8 comme système d'exploitation avec au moins 1 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.

Une fois que vous êtes connecté à votre serveur CentOS 8, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.

dnf update -y

Étape 2 - Installer et configurer Nginx

Remarque :Effectuez cette étape sur WebServer 1 et WebServer2

Tout d'abord, vous devrez installer le serveur Web Nginx sur les instances web1 et web2.

Vous pouvez installer Nginx en exécutant la commande suivante :

dnf install nginx -y

Une fois Nginx installé, démarrez le service Nginx et activez-le pour qu'il démarre au démarrage sur les deux instances :

systemctl start nginx
systemctl enable nginx

Ensuite, modifiez le index.html fichier sur chaque instance.

Modifier index.html fichier sur web1 instance avec la commande suivante :

echo "This is My First Nginx Web Server" > /usr/share/nginx/html/index.html

Modifier index.html fichier sur web2 instance avec la commande suivante :

echo "This is My Second Nginx Web Server" > /usr/share/nginx/html/index.html

Enregistrez et fermez le fichier lorsque vous avez terminé.

Étape 3 - Installer et configurer HAProxy

Remarque :Effectuez cette étape sur le serveur HAProxy

Tout d'abord, installez HAProxy sur l'instance du serveur haproxy avec la commande suivante :

dnf install haproxy -y

Une fois l'installation terminée, sauvegardez le fichier de configuration par défaut d'haproxy :

mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg-bak

Le fichier de configuration est divisé en quatre sections principales.

  1. paramètres globaux : Utilisé pour définir des paramètres à l'échelle du processus.
  2. par défaut : Utilisé pour définir les paramètres par défaut pour toutes les autres sections.
  3. interface : Utilisé pour définir comment HAProxy est accessible en externe pour permettre l'accès au backend.
  4. back-end : Utilisé pour définir un ensemble de serveurs auxquels le proxy se connectera pour transférer les connexions entrantes.

Créez ensuite un nouveau fichier de configuration haproxy à l'aide de la commande suivante :

nano /etc/haproxy/haproxy.cfg

Ajoutez les lignes suivantes qui correspondent à votre infrastructure :

#————————————————————————

global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon

# activer le socket stats unix

stats socket /var/lib/haproxy/stats

# utiliser des politiques de chiffrement à l'échelle du système

ssl-default-bind-ciphers PROFILE=SYSTEM
ssl-default-server-ciphers PROFILE=SYSTEM

#————————————————————————

defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000

#————————————————————————

# interface principale qui proxyse les backends

#————————————————————————

frontend haproxy_balancer # define the name of the frontend.
bind 192.168.0.10:80 # IP address of HAProxy server
option http-server-close
option forwardfor
stats uri /haproxy?stats # Specify the HAProxy status page.
default_backend webservers

#————————————————————————

# équilibrage à tour de rôle entre les différents backends

#————————————————————————

serveurs web backend # Spécifiez un nom pour identifier une application

mode http
balance roundrobin # defines the roundrobin load balancer scheduling algorithm
option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost
server nginx-web1 192.168.0.11:80 check # IP address of the first backend server
server nginx-web2 192.168.0.12:80 check # IP address of the second backend server

Remarque :Assurez-vous de modifier l'adresse IP ci-dessus avec l'adresse IP correspondant à la configuration de votre serveur

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, vérifiez le fichier de configuration haproxy pour toute erreur avec la commande suivante :

haproxy -c -f /etc/haproxy/haproxy.cfg

Vous devriez obtenir le résultat suivant :

Configuration file is valid

Enfin, démarrez le service haproxy et activez-le au démarrage avec la commande suivante :

systemctl start haproxy
systemctl enable haproxy

Vous pouvez également vérifier haproxy avec la commande suivante :

systemctl status haproxy

Vous devriez obtenir le résultat suivant :

  • haproxy.service - HAProxy Load Balancer
Loaded: loaded (/usr/lib/systemd/system/haproxy.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2020-04-24 02:14:55 EDT; 5min ago
Process: 1371 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q (code=exited, status=0/SUCCESS)
Main PID: 1373 (haproxy)
Tasks: 2 (limit: 6087)
Memory: 2.8M
CGroup: /system.slice/haproxy.service
├─1373 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
└─1374 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid

Apr 24 02:14:55 haproxy systemd[1]: Starting HAProxy Load Balancer...
Apr 24 02:14:55 haproxy systemd[1]: Started HAProxy Load Balancer.

Étape 4 - Configurer la journalisation HAProxy

La journalisation HAProxy vous permet de voir les statistiques de chaque connexion à vos serveurs Web principaux.

Vous pouvez configurer rsyslog en éditant le fichier /etc/rsyslog.conf :

nano /etc/rsyslog.conf

Décommentez la ligne suivante :

module(load="imudp")
input(type="imudp" port="514")

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, vous devrez configurer un serveur rsyslog pour recevoir et traiter les messages du journal HAProxy.

Pour ce faire, créez un nouveau fichier de configuration haproxy.conf :

nano /etc/rsyslog.d/haproxy.conf

Ajoutez les lignes suivantes :

local2.=info /var/log/haproxy-access.log
local2.notice /var/log/haproxy-info.log

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, redémarrez le service rsyslog et activez-le pour qu'il démarre au démarrage avec la commande suivante :

systemctl restart rsyslog
systemctl enable rsyslog

Étape 5 :Tester l'équilibrage de charge HAProxy

À ce stade, HAProxy est installé et configuré. Il est temps de tester si l'équilibrage de charge fonctionne ou non.

Ouvrez votre navigateur Web et saisissez votre IP HAProxy http://192.168.0.10. Vous devriez voir le contenu de votre premier serveur Web Nginx dans l'écran suivant :

Ensuite, actualisez la page Web. Vous devriez voir le contenu de votre deuxième serveur Web Nginx dans l'écran suivant :

Vous pouvez afficher l'état de haproxy à l'aide de l'URL http://192.168.0.10/haproxy?stats. Vous devriez voir la santé de vos serveurs, les taux de requêtes actuels, les temps de réponse et d'autres mesures dans l'écran suivant :

Conclusion

Dans le guide ci-dessus, nous avons appris à configurer un équilibreur de charge haute disponibilité avec HAProxy sur CentOS 8. Vous pouvez désormais facilement concevoir et configurer l'équilibrage de charge en fonction de votre infrastructure informatique et des exigences de l'application ; essayez-le sur l'hébergement VPS d'Atlantic.Net.


Linux
  1. Comment configurer un serveur SFTP sur CentOS

  2. Comment configurer HAProxy dans Ubuntu 16.04

  3. Comment configurer le serveur SysLog sur CentOS 7 / RHEL 7

  4. Comment configurer le serveur NFS sur CentOS 7 / RHEL 7

  5. Comment configurer le serveur NTP dans CentOS ?

Comment configurer le serveur SysLog centralisé sur CentOS 8 / RHEL 8

Comment installer HAProxy sur CentOS 7

Comment installer HAProxy sur CentOS 8

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

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

Comment initialiser la configuration du serveur CentOS 7