Comment Configurer HAProxy En Tant Qu'équilibreur De Charge Pour Nginx Sur CentOS ?

Dans cet article, nous allons configurer HAProxy en tant qu’équilibreur de charge pour Nginx sur CentOS. Nous supposons que vous avez déjà configuré et exécuté le service NGINX.

Qu’est-ce Que L’équilibrage De Charge ?

Un équilibreur de charge se trouve entre le client et le serveur et répartit le trafic réseau sur plusieurs serveurs. Son seul but est de distribuer les requêtes entrantes au serveur capable de répondre à la requête. Voici un organigramme sans équilibrage de charge.

Sans équilibrage de charge

Un équilibreur de charge se trouve entre le client et les serveurs, comme illustré dans le schéma ci-dessous.

Avec équilibrage de charge

Qu’est-ce Que HAProxy ?

HAProxy est une solution d’équilibrage de charge et de proxy de serveur haute disponibilité gratuite, rapide, populaire et open source pour TCP et

Comment Installer HAProxy Sur CentOS ?

Pour installer HAProxy sur CentOS, vous pouvez utiliser le gestionnaire de packages yum comme mentionné ci-dessous.

Avant de continuer, assurez-vous que votre index yum est à jour en exécutant :

sudo miam mise à jour

Après quoi nous pouvons maintenant installer HAProxy en utilisant le gestionnaire de packages yum, exécutez :

sudo yum installer haproxy

Une fois que nous l’avons installé, nous pouvons procéder à la configuration de HAProxy.

HAProxy installé sur CentOS

Les Essentiels à Connaître Avant De Configurer HAProxy

Dans cette section, nous allons découvrir quelques bases de HAProxy.

Quels Sont Les Modes Pris En Charge Par HAProxy ?

HAProxy prend en charge deux modes, à savoir : TCP et

Le mode TCP est plus léger et plus rapide car son seul but est de transmettre les données et car il n’a pas à lire les données. C’est une meilleure option pour les non-

Quels Sont Les Mécanismes D’équilibrage De Charge Pris En Charge Par HAProxy ?

HAProxy a beaucoup d’algorithmes d’équilibrage de charge. Selon la documentation officielle, il existe une dizaine de tels algorithmes. Mais dans ce didacticiel, nous allons démontrer HAProxy en utilisant l’algorithme round-robin. Les trois principaux algorithmes sont répertoriés ci-dessous :

  1. Round-robin – Dans cet algorithme, HAProxy commence par l’un des serveurs et sélectionne chaque serveur à son tour.
  2. leastconn – En cela, il choisit simplement un serveur avec le moins de connexions.
  3. source – En cela, il choisit un serveur en fonction d’où vient la connexion (le client).

D’autres sont URI, hdr, d’abord…

Que Sont Les ACL Dans HAProxy ?

Les listes de contrôle d’accès ou les listes de contrôle d’accès sont les conditions sur lesquelles les opérations peuvent être effectuées à l’aide des opérateurs logiques OR, NOT). Par exemple, si vous souhaitez empêcher toute personne naviguant vers /wp-admin/ sur un site Web WordPress autre que vous d’y accéder à partir de votre adresse IP statique, vous pouvez utiliser des listes de contrôle d’accès.

Comment Configurer HAProxy ?

Pour montrer comment configurer HAProxy, nous avons mis en place un environnement de test comprenant trois instances NGINX hébergées sur le même serveur mais sur des ports différents avec des pages Web différentes. Nous avons installé HAProxy sur un serveur CentOS et l’avons configuré en tant qu’équilibreur de charge pour ces instances NGINX à l’aide d’un mécanisme de round-robin. Nous allons également mettre en place une ACL pour refuser toute requête sur /admin/ de la part de l’utilisateur.

Pour démontrer HAProxy

L’exemple de fichier de configuration de HAProxy se trouve dans /etc/haproxy nommé haproxy.cfg . Accédez au répertoire en exécutant :

cd /etc/haproxy

Exemple de fichier de configuration HAProxy

Mais dans ce didacticiel, nous utiliserons une configuration HAProxy simple ci-dessous :

l'extrémité avant 
 lier *:80
 client de délai d'attente 30s
 mode 
 
 default_backend 

back-end 
 timeout connecter 5s
 serveur de délai d'attente 20s
 tournoi à la ronde
 mode 
 serveur 
 serveur 
 serveur 

Explication Pour La Partie Frontend De La Configuration :

Le front-end

La liaison de la 2e ligne indique l’adresse IP et le port à lier.

Le client de délai d’attente 30s dans la 3ème ligne indique après combien de secondes la connexion avec le client doit être interrompue, ici c’est 30 secondes.

Le mode

le

Le backend_défaut

Passons Maintenant à La Partie Serveur De La Configuration :

Le backend

Le délai d’attente de connexion 5s dans la 9ème ligne détermine combien de secondes le HAProxy doit essayer de se connecter au serveur avant de passer à un autre serveur.

Le serveur de délai d’attente 20s dans la 10e ligne détermine l’intervalle de temps pendant lequel le HAProxy doit attendre la réponse à l’entrée du serveur avant de passer à un autre serveur.

Le roundrobin d’équilibre à la ligne 11 définit le mécanisme d’équilibrage de charge à utiliser. Nous utilisons un round-robin ici.

Le mode

Ensuite, les serveurs sont répertoriés au format serverName ip:port chaque serveur par ligne.

Comment Lancer HAProxy Sur CentOS ?

Une fois que vous avez terminé la configuration, nous pouvons maintenant procéder à son lancement. Avant cela, autorisez le port 80 dans le pare-feu en exécutant :

sudo firewall-cmd -zone=public -permanent -add-service=

Vous pouvez tester la configuration de HAProxy en exécutant :

sudo haproxy -f /chemin/vers/configuration

Cela devrait lancer HAProxy sur votre système. Pour lancer HAProxy à chaque redémarrage du système, utilisez systemctl pour le lancer. La configuration dans /etc/haproxy/haproxy.cfg sera utilisée.

Pour lancer HAProxy avec SELinux activé, exécutez :

sudo setsebool -P haproxy_connect_any 1

ou, vous pouvez désactiver temporairement SELinux en exécutant :

sudo setenforce 0

Utilisez ensuite les commandes systemctl suivantes pour activer et démarrer le service :

sudo systemctl activer haproxy
sudo systemctl démarrer haproxy

Désormais, à chaque redémarrage, le HAProxy démarrera tout seul.

Si nous ouvrons 192.168.0.195 dans notre navigateur, et chaque fois que nous rechargeons, nous pouvons voir le round-robin en action.

Instance NGINX 1 Instance NGINX 2 Instance NGINX 3

Testons maintenant la liste de contrôle d’accès que nous avons définie dans la configuration pour /admin/ .

Je suis l’utilisateur (c’est-à-dire 192.168.0.149) et lorsque je navigue vers 192.168.0.195/admin/, je peux facilement y accéder

Accès à l’administrateur avec l’utilisateur 192.168.0.149

et, en essayant d’accéder à la même destination avec n’importe quel autre utilisateur.

Demande interdite pour tout autre utilisateur que 192.168.0.149

C’est ainsi que fonctionnent les listes de contrôle d’accès dans HAProxy !

Conclusion

L’installation de HAProxy sur CentOS est très simple mais la partie configuration peut être un peu délicate, nous avons essayé de couvrir toutes les bases dans l’article pour vous aider à configurer un simple équilibreur de charge HAProxy sur votre système.

Merci pour la lecture! ??

Promo
The Linux Command Line, 2nd Edition: A Complete Introduction
  • English (Langue de Publication)
  • Éditeur: No Starch Press
Promo
How Linux Works, 3rd Edition: What Every Superuser Should Know
  • English (Langue de Publication)
  • Éditeur: No Starch Press
Linux
  • English (Langue de Publication)
  • Éditeur: QuickStudy
Promo
Linux Bible
  • English (Langue de Publication)
  • Éditeur: Wiley
PINEBOOK Pro Linux Laptop 14″ 1080P IPS (US/CA Keyboard) - Metal and Open Source, Support Debian ARM, Ubuntu ARM, Manjaro ARM, Arch ARM (Version: Oct 2020)
  • Best for Tinkering: Linux - Majaro (Default), Ubuntu, Debian, Arch ARM, Kali,...
  • August 2020 version | CPU: 64-Bit Dual-Core ARM 1.8GHz Cortex A72 and Quad-Core...
  • Flash: 64 GB eMMC 5.0 | WiFi 802.11AC + Bluetooth 5.0 |
  • One USB 3.0 and one USB 2.0 Type-A Host Ports | USB 3.0 Type-C ports with...
  • Display: 14.1″ IPS LCD (1920 x 1080) | Front Camera: 2.0 Megapixels | Battery:...
Linux Mint 20 Cinnamon Edition 64bit on USB - Latest 2022 edition
  • Linux Mint 20 'Ulyana' Cinnamon Edition 64bit on bootable USB
  • It is a great operating system: safer, faster, and steadier than Window, and you...
  • Free Unlimited updates for life!
  • To load the software some laptops needs to change the setting on the BIOS - it...
  • System requirements: 2GB RAM. Dual Core Processor. 20GB free disk space.
UNIX and Linux System Administration Handbook (5th Edition)
  • English (Langue de Publication)
  • Éditeur: Addison-Wesley Professional