GNU/Linux >> Tutoriels Linux >  >> Linux

Configurer l'équilibrage de charge avec HAProxy, Nginx et Keepalived sous Linux

Dans la méthode conventionnelle d'hébergement d'un serveur ou d'un site Web, le serveur est hébergé via un seul serveur HTTP. Lorsque les clients accèdent au serveur, ils sont autorisés sur le serveur. Mais que se passe-t-il lorsque plusieurs utilisateurs, encore plus ; des milliers de clients, visitent le site à la fois pour une requête ? Que se passera-t-il si le serveur plante ? Comment le serveur unique équilibrera-t-il la charge ? Pour répondre à toutes ces questions, nous pouvons utiliser le terme « Équilibrage de charge ». Si vous recherchez des outils authentiques pour gérer le trafic de votre serveur, vous pouvez certainement configurer HAProxy, Nginx et Keepalived sur Linux pour l'équilibrage de charge.

Principes de base de HAProxy, Nginx et Keepalived

Le Nginx est bien connu pour ses services d'équilibrage de charge et de proxy. Dans les serveurs d'équilibrage de charge, les clients se connectent au serveur via un équilibreur de charge au lieu de se connecter directement au serveur. L'utilisation de Nginx, HAProxy et Keepalived fonctionne bien pour l'équilibrage de charge sous Linux. Lorsqu'un serveur tombe en panne, l'équilibreur de charge connecte les clients à un autre serveur en ligne.

Le HAProxy est un outil d'équilibrage de charge gratuit et open-source pour les serveurs Web HTTP et TCP. Il est écrit en langage de programmation C et sous licence publique GNU. Il est hautement complet et facile à configurer pour l'équilibrage de charge sous Linux. Le terme HAProxy signifie outil proxy haute disponibilité. Vous pouvez déployer l'outil HAProxy pour améliorer les performances, la disponibilité et l'équilibrage de charge du serveur.

L'outil Keepalived agit comme un intermédiaire entre deux serveurs qui peuvent rediriger le client d'un serveur vers un autre serveur lorsque l'un d'eux est en panne. Le Keepalived fonctionne dans un protocole de redondance de routeur virtuel pour équilibrer la charge et réduire le problème de défaillance du serveur. L'utilisation de HAProxy est utile pour équilibrer la charge et rendre le serveur toujours opérationnel.

Par conséquent, il n'y a aucune garantie que le HAProxy restera toujours en vie. Voici le Keepalived pour sauvegarder votre HAProxy. Il peut distribuer la demande du client à des serveurs distants et gérer l'équilibrage de charge des couches 4 et 7 (couches de transport et d'application). De plus, le HAProxy peut gérer les listes de contrôle d'accès, les terminologies backend et frontend.

Équilibrage de charge avec HAProxy, Nginx et Keepalived sous Linux

Puisque nous avons déjà beaucoup parlé de HAproxy, Nginx et de l'outil Keepalived pour Linux, passons au tutoriel. Dans cet article, nous verrons comment configurer l'équilibrage de charge avec HAProxy, Nginx et Keepalived sous Linux. Nous aurons besoin de connaissances fondamentales au niveau du serveur et de la capacité de base à utiliser Linux pour accompagner cet article.

Étape 1 :Installez Nginx sur Linux pour l'équilibrage de charge

Puisque nous verrons les méthodes pour rendre notre serveur plus puissant, l'équilibrage de charge et plus de gestion des clients, l'installation du serveur Web HTTP Nginx serait la première étape pour commencer le processus. L'installation du serveur Web Nginx est simple et directe, et vous pouvez utiliser les commandes suivantes pour installer le serveur Web Nginx sur votre machine Linux.

  • Installer le serveur Web Nginx sur Ubuntu/Debian Linux
sudo apt update
sudo apt install nginx
- -

  • Exécutez les commandes suivantes pour installer Nginx sur Fedora/Red Hat Linux
yum -y install nginx

Après avoir installé le serveur Nginx, nous allons configurer, activer et démarrer le serveur sur votre machine. Veuillez parcourir cet article pour voir comment démarrer avec le serveur Nginx sous Linux.

Étape 2 :Installez l'équilibreur de charge HAproxy sous Linux

Après avoir installé et configuré le serveur Nginx sur votre machine Linux, il peut fonctionner correctement en tant que serveur sur votre machine ou votre réseau. Mais, comme nous essayons ici de créer un serveur d'équilibrage de charge, nous allons maintenant installer et configurer l'outil HAproxy sur notre système.

1. Installer et configurer HAproxy sur Ubuntu pour l'équilibrage de charge

Avant d'installer le HAProxy sur votre système, vous voudrez peut-être vérifier si les services HAProxy sont déjà dans votre système ou non.

sudo apt show haproxy

Maintenant, ajoutez le référentiel HAProxy à votre système via les packages PPA. Une fois que le PPA a extrait le référentiel, mettez à jour votre référentiel système.

sudo add-apt-repository ppa:vbernat/haproxy-1.7
sudo apt update

Enfin, veuillez exécuter les commandes suivantes sur votre système Linux Ubuntu/Debian pour obtenir le HAProxy sur le système. Après avoir installé le HAProxy, veuillez vérifier la version de HAProxy pour vous assurer qu'il a été installé correctement sur votre machine.

sudo apt install -y haproxy
haproxy -v

Une fois l'installation du HAProxy effectuée sur votre machine Linux, nous allons maintenant éditer le script de configuration pour mettre en place le HAProxy avec notre serveur. Ici, nous allons modifier quelques scripts de configuration HAProxy, et soyez prudent lorsque vous modifiez ces scripts et effectuez une sauvegarde de ces fichiers pour restaurer la configuration par défaut en cas de problème.

Tout d'abord, exécutez la commande suivante sur votre shell de terminal avec un accès root pour modifier le script de configuration HAProxy. Ici, j'utilise l'outil d'édition de script Nano, et vous pouvez utiliser n'importe lequel de vos outils préférés.

sudo nano /etc/haproxy/haproxy.cfg

Maintenant, copiez et collez les lignes de script suivantes dans le fichier, puis enregistrez et fermez le fichier. Les lignes de script suivantes définissent l'état du frontend et du backend avec HAProxy. Veuillez saisir les détails de votre serveur dans le nom du serveur, l'adresse IP et les autres champs d'informations d'identification.

frontend http_front
bind *:80
stats uri /haproxy?stats
default_backend http_back

backend http_back
balance roundrobin
server :80 check
server :80 check

Maintenant, exécutez la commande suivante sur le shell du terminal pour modifier et configurer le script HAproxy.

sudo nano /etc/haproxy/haproxy.cfg

Veuillez utiliser le script de configuration suivant pour configurer les paramètres HAproxy.

frontend http_front
bind *:80
stats uri /haproxy?stats
acl url_blog path_beg /blog
use_backend blog_back if url_blog
default_backend http_back

backend http_back
balance roundrobin
server :80 check
server :80 check

backend blog_back
server :80 check

Lorsque la configuration est terminée, vous pouvez maintenant redémarrer l'outil HAProxy sur votre machine Linux en exécutant la commande de contrôle système suivante avec un accès root.

sudo systemctl status haproxy
sudo systemctl restart haproxy

Vous pouvez maintenant exécuter la commande mentionnée ci-dessous avec l'adresse de votre serveur pour vérifier l'état du serveur.

http:///haproxy?stats

2. Installer et configurer HAproxy sur Fedora

L'installation de l'outil d'équilibrage de charge HAProxy sur Fedora Linux revient un peu à l'installer sur les systèmes Debian/Ubuntu. Tout d'abord, mettez à jour le référentiel système, puis exécutez la commande DNF pour installer l'outil HAProxy sur votre machine Linux.

yum -y update
yum -y install haproxy

Une fois l'installation terminée, exécutez la commande suivante pour effectuer une sauvegarde du script de configuration avant d'apporter des modifications.

cd /etc/haproxy/
mv haproxy.cfg haproxy.cfg_bac

Vous pouvez maintenant créer un nouveau script de configuration HAProxy en exécutant la commande tactile ci-dessous. Modifiez ensuite le script avec la commande Nano suivante.

touch haproxy.cfg
nano haproxy.cfg

Vous pouvez copier et coller le script de configuration suivant, puis enregistrer et quitter le fichier.

global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000

#frontend
#---------------------------------
frontend http_front
bind *:80
stats uri /haproxy?stats
default_backend http_back

#round robin balancing backend http
#-----------------------------------
backend http_back
balance roundrobin
#balance leastconn
mode http
server webserver1 10.13.211.169:80 check # ip_address_of_1st_centos_webserver
server webserver2 10.13.211.158:80 check # ip_address_of_2nd_centos_webserver

Après avoir ajouté le script dans le fichier de configuration, nous allons maintenant activer, démarrer et vérifier l'état de l'outil HAProxy sur notre Fedora Linux.

systemctl enable haproxy
systemctl start haproxy
systemctl status haproxy

Vous pouvez également vérifier si HAProxy fonctionne bien sur votre système ou non en extrayant le statut HAProxy via votre navigateur Web.

http://10.13.211.194/haproxy?stats

Les commandes cURL suivantes renverront également l'état détaillé du serveur avec l'état HAProxy.

curl 10.13.211.194
curl 10.13.211.194

Étape 3 :Installez Keepalived sur Linux

Puisque nous avons déjà discuté de Keepalived, nous passons ici directement au processus d'installation de Keepalived sur les systèmes Linux. Nous verrons ici les méthodes d'installation et de configuration de l'outil Keepalived sur Fedora et Debian Linux.

1. Installer et configurer Keepalived sur Ubuntu/Debian

Pour installer l'outil d'équilibrage de charge Keepalived sur Ubuntu et d'autres systèmes Debian Linux, veuillez exécuter la commande suivante pour obtenir les outils essentiels à la construction sur vos systèmes. Ensuite, parcourez le répertoire personnel et exécutez la commande wget fournie ci-dessous pour télécharger le fichier Keepalived compressé sur le système de fichiers.

sudo apt-get install build-essential libssl-dev
cd ~
wget http://www.keepalived.org/software/keepalived-1.2.19.tar.gz

Une fois le téléchargement terminé, veuillez utiliser la commande tar suivante pour extraire le fichier, puis parcourez le répertoire extrait via la commande CD.

tar xzvf keepalived*
cd keepalived*

Vous pouvez maintenant exécuter les commandes suivantes pour installer l'outil Keepalived sur votre système Ubuntu.

./configure
make
sudo make install

Lorsque l'installation se termine, il est temps d'éditer la configuration pour mettre en place le Keepalived avec notre serveur. Veuillez exécuter la commande ci-dessous pour modifier le script de configuration.

sudo nano /etc/init/keepalived.conf

Lorsque le script s'ouvre, copiez et collez le script suivant fourni ci-dessous.

description "load-balancing and high-availability service"

start on runlevel [2345]
stop on runlevel [!2345]

Maintenant, exécutez le mkdir pour créer un nouveau script de configuration pour l'outil Keepalived, puis remplissez-le avec le script de configuration.

sudo mkdir -p /etc/keepalived
sudo nano /etc/keepalived/keepalived.conf

Utilisez les lignes de script suivantes pour remplir le fichier de configuration Keepalived.

vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state MASTER
priority 200

virtual_router_id 33
unicast_src_ip primary_private_IP
unicast_peer {
secondary_private_IP
}


}

Maintenant, éditez le script de configuration Keepalived à partir du etc répertoire et ajoutez les lignes suivantes dans votre script.

sudo nano /etc/keepalived/keepalived.conf

Lignes de script que nous devrons mettre dans le fichier de configuration.

vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state BACKUP
priority 100

virtual_router_id 33
unicast_src_ip secondary_private_IP
unicast_peer {
primary_private_IP
}

authentication {
auth_type PASS
auth_pass password
}

track_script {
chk_haproxy
}

notify_master /etc/keepalived/master.sh
}

Après avoir configuré les scripts pour Keepalived, nous allons maintenant créer un script de configuration d'équilibreur de charge secondaire et remplir le script avec les lignes de script nécessaires.

sudo nano /etc/keepalived/keepalived.conf

Exécutez la commande nano pour modifier le script et remplissez le script avec les lignes indiquées ci-dessous. Une fois le fichier mis à jour, enregistrez et fermez le script.

vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state BACKUP
priority 100

virtual_router_id 33
unicast_src_ip secondary_private_IP
unicast_peer {
primary_private_IP
}

authentication {
auth_type PASS
auth_pass password
}

track_script {
chk_haproxy
}

notify_master /etc/keepalived/master.sh
}

2. Installer et configurer Keepalived sur Fedora

L'installation de l'outil Keepalived sur les systèmes Fedora et Red Hat Linux est assez similaire à son installation sur les distributions Debian. Tout d'abord, vous devrez mettre à jour votre référentiel système, puis exécuter la commande yum suivante pour installer l'outil Keepalived.

yum update
yum install -y keepalived

Une fois l'installation terminée, nous allons maintenant modifier le script de configuration Keepalived pour ajuster les paramètres du serveur avec Keepalived. Avant d'apporter des modifications, nous allons effectuer une sauvegarde du script de configuration Keepalived.

Exécutez les commandes suivantes sur votre shell une par une pour créer un fichier de sauvegarde, créer un fichier de configuration et modifier le script de configuration. Après avoir configuré l'outil, nous l'utiliserons pour configurer notre serveur d'équilibrage de charge sous Linux.

mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf_bac
touch /etc/keepalived/keepalived.conf
vim /etc/keepalived/keepalived.conf

Lorsque le script de configuration s'ouvre, veuillez remplir le fichier avec les lignes de script fournies ci-dessous. Vous devrez peut-être apporter des modifications au fichier de script en fonction de l'adresse IP, du port, du nom et d'autres détails de votre serveur.

global_defs {
notification_email {
www.ubuntupit.com
[email protected]
}
notification_email_from [email protected]
smtp_server 10.13.211.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}

vrrp_instance VI_1 {
state MASTER
interface eth0 #put your interface name here. [to see interface name: $ ip a ]
virtual_router_id 51
priority 101 # 101 for master. 100 for backup. [priority of master> priority of backup]
advert_int 1
authentication {
auth_type PASS
auth_pass 1111 #password
}
virtual_ipaddress {
10.13.211.10 # use the virtual ip address.
}
}

Après avoir configuré les scripts Keepalived, veuillez exécuter les commandes de contrôle système suivantes avec un accès root sur votre shell de terminal pour démarrer, activer et vérifier l'état de Keepalived sur votre machine Linux.

systemctl start keepalived
systemctl enable keepalived
systemctl status keepalived

Si tout se passe bien, la commande suivante renverra l'état du serveur pour tous vos emplacements IP, ce qui garantira que votre serveur Linux dispose de la configuration complète pour l'équilibrage de charge avec une haute disponibilité.

$ while true; do ; curl 10.13.211.10 ; sleep 1; done;

Derniers mots

Si vous êtes un administrateur système, vous savez à quel point il est important de rendre votre serveur toujours actif et accessible aux clients du monde entier. Généralement, si votre serveur est occupé, il est recommandé d'activer un mécanisme d'équilibrage de charge.

Cela peut rendre le serveur rapide et accessible avec des tonnes de visites à la fois. Dans tout l'article, j'ai passé en revue les principes fondamentaux de HAProxy, Keepalived et Nginx. J'ai illustré le concept et les méthodes de configuration de HAProxy, Nginx et Keepalived pour l'équilibrage de charge sous Linux.

Veuillez le partager avec vos amis et la communauté Linux si vous trouvez cet article utile et informatif. Vous pouvez également écrire vos opinions concernant ce message dans la section des commentaires.


Linux
  1. Comment installer et configurer Nginx, WordPress et Mysql 8 dans Rocky Linux/Centos 8

  2. Surveiller le serveur Linux avec Prometheus et Grafana

  3. Comment installer et configurer cPanel sur un serveur Linux

  4. Comment configurer une application nodejs simple avec nginx et pm2 sur le serveur ubuntu

  5. Équilibrage de charge Nginx

Équilibrage de charge avec HAProxy, Nginx et Keepalived sous Linux

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

Comment installer et configurer le serveur Web Nginx sur Oracle Linux 8

Comment configurer l'équilibrage de charge avec NGINX sur Jelastic Cloud

Comment configurer le serveur et le client VPN Linux à l'aide d'OpenVPN

Comment configurer Logstash sur Linux avec ElasticSearch, Redis, Nginx