GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer et configurer HAproxy sur Ubuntu 20.04 LTS

HAproxy est un package open source léger qui offre une haute disponibilité et un équilibrage de charge pour les programmes basés sur TCP et HTTP. Il équilibre la charge entre le Web et les serveurs d'applications. HAproxy est disponible pour presque toutes les distributions Linux. Il s'agit d'un équilibreur de charge largement utilisé, populaire pour son efficacité, sa fiabilité et sa faible empreinte mémoire et CPU. Dans cet article, nous expliquons comment installer et configurer HAproxy sur un système Ubuntu.

Nous avons installé trois machines. Nous allons installer HAproxy sur un serveur et les serveurs web Apache sur deux serveurs. Notre serveur HAproxy agit alors comme un équilibreur de charge et distribue la charge sur les serveurs Web Apache.

Remarque : La procédure et les commandes mentionnées dans ce post ont été testées sur Ubuntu 20.04 LTS (Focal Fossa). La même procédure s'applique également aux distributions Debian et Mint.

Détails du réseau

Nous utiliserons trois serveurs Ubuntu ; le tout sur le même réseau. Les détails de nos serveurs sont les suivants :

Nom d'hôte :HAproxy, adresse IP :192.168.72.157 (serveur frontal)
Nom d'hôte : serveur Web1, adresse IP :192.168.72.158 (serveur principal)
Nom d'hôte : serveur Web2, adresse IP :192.168.72.159 (serveur principal)

Remarque : Vous devez avoir les privilèges sudo sur tous les serveurs.

Nous allons configurer un ordinateur en tant qu'équilibreur de charge et les deux autres en tant que serveurs Web. Le serveur HAproxy sera notre serveur frontal, prenant les demandes des utilisateurs et les transmettant aux deux serveurs Web. Les serveurs Web sont nos serveurs principaux qui reçoivent ces requêtes transférées.

Notre configuration ressemble à ceci :

Configurer les serveurs backend des serveurs Web

Dans cette section, nous allons configurer deux serveurs Web (Webserver1 et Webserver2 ) comme nos serveurs principaux.

Sur le serveur Web1(192.168.72.158)

Effectuez les étapes suivantes sur votre serveur Web. Assurez-vous de remplacer les noms d'hôte et les adresses IP par les adresses IP et les noms d'hôte correspondants de vos serveurs Web.

1. Configurer le fichier hosts

Sur Webserver1, Modifiez le /etc/hosts Fichier :

$ sudo nano /etc/hosts

Ajoutez ensuite l'entrée de nom d'hôte pour . ajouter HAproxy Serveurs comme suit :

nom-d'hôte-de-HAproxy adresse-IP-de-HAproxy

Dans notre scénario, ce serait :

HAproxy 192.168.72.157

2. Configurer le serveur Web Apache

Installez maintenant le serveur Web Apache à l'aide de la commande suivante dans le terminal. Consultez également notre article sur Comment installer Apache Web Server sur Linux.

$ sudo approprié Installer Apache2

Ensuite, activez et démarrez le service Apache à l'aide des commandes suivantes dans le terminal :

$ sudo systemctl activer apache2
$ sudo systemctl démarrer apache2

Créer un fichier d'index pour Webserver1 Utilisez la commande suivante dans le terminal :

$écho"

Bonjour ! C'est le serveur Web1 :192.168.72.158

“ | tee sudo /wo/www/html/index.html

Si vous avez un pare-feu en cours d'exécution sur votre système, vous devez autoriser le trafic Apache à le traverser :

$ sudo ufw autoriser 80/tcp

Rechargez ensuite les configurations du pare-feu :

Recharger $ufw

Essayez maintenant d'accéder au site dans votre navigateur Web en tapant https:// suivi de l'adresse IP ou du nom d'hôte de votre serveur Web.

https:// nom d'hôte ou adresse IP

Vous pouvez également utiliser la commande curl pour tester la page Web.

$lock

Sur le serveur Web-2 192.168.72.159)

Effectuez les étapes suivantes dans votre deuxième serveur Web. Assurez-vous de remplacer les noms d'hôte et les adresses IP par les adresses IP et les noms d'hôte correspondants de vos serveurs Web.

1. Configurer le fichier hosts

Dans Webserver2 , modifiez le fichier /etc/hosts Fichier :

$ sudo nano /etc/hosts

Ajoutez ensuite l'entrée de nom d'hôte pour . ajouter HAproxy Serveurs comme suit :

HAproxy 192.168.72.157

2. Installer le serveur Web Apache

Installez maintenant le serveur Web Apache à l'aide de la commande suivante dans le terminal.

$ sudo approprié Installer Apache2

Ensuite, activez et démarrez le service Apache à l'aide des commandes suivantes dans le terminal :

$ sudo systemctl activer apache2
$ sudo systemctl démarrer apache2

Créez un fichier d'index pour Webserver2 à l'aide de la commande suivante dans Terminal :

$écho"

Bonjour ! C'est le serveur Web2 :192.168.72.159

“ | tee sudo /wo/www/html/index.html

Autoriser Apache dans le pare-feu :

$ sudo ufw autoriser 80/tcp

puis rechargez les configurations du pare-feu :

Recharger $ufw

Essayez maintenant d'accéder au site dans votre navigateur Web en tapant https:// suivi de l'adresse IP ou du nom d'hôte.

https:// nom d'hôte ou adresse IP

Vous pouvez également utiliser la commande curl pour tester la page Web.

$lock

Nos serveurs Web Apache sont maintenant prêts.

Configurer le serveur frontal HAproxy Load Balancer

Dans cette section, nous avons configuré un équilibreur de charge HAproxy pour nos serveurs Web . Ce serveur HAproxy agit comme un serveur frontal et accepte les requêtes entrantes des clients.

Sur le HAproxy Serveur (192.168.72.157 ), suivez les étapes ci-dessous pour configurer l'équilibreur de charge.

1. Configurer le fichier hosts

Modifiez le fichier /etc/hosts fichier avec la commande suivante dans le terminal :

$ sudo nano /etc/hosts

Ajoutez les entrées de nom d'hôte suivantes pour Apache Serveur Web avec son propre nom d'hôte :

192.168.72.157 HAproxy
192.168.72.158 serveur Web1
192.168.72.159 serveur Web2

Maintenant, enregistrez et fermez le fichier /etc/hosts fichier.

Installer l'équilibreur de charge HAproxy

Dans cette étape, nous allons maintenant installer le HAproxy sur l'un de nos serveurs Ubuntu (192.168.72.157). Pour ce faire, mettez à jour apt avec la commande suivante dans le terminal :

$ sudo apt-obtenir la mise à jour

Mettez ensuite à jour les packages avec la commande suivante :

$ sudo apt-get upgrade

Installez maintenant HAproxy avec la commande suivante dans le terminal :

$ sudo sudo convenable installer heureux

Une fois l'installation du serveur HAproxy terminée, vous pouvez la confirmer avec la commande suivante dans le terminal :

$ heureux -v

Il vous montrera la version installée de HAproxy sur votre système, confirmant que HAproxy a été installé avec succès.

Configurer HAproxy comme équilibreur de charge

Dans la section suivante, nous configurons HAproxy en tant qu'équilibreur de charge. Pour ce faire,Editez le fichier /etc/haproxy/haproxy.cfg Fichier :

$ sudo nano >etc/happy/haproxy.cfg

Ajoutez les lignes suivantes au fichier haproxy.cfg, en remplaçant les adresses IP par vos propres adresses IP.

?Le Frontend Web Frontend dans les lignes de configuration ci-dessus, HAproxy est chargé d'écouter les requêtes entrantes sur le port 80 de 192.168.72.157 puis transférez-les aux serveurs principaux fonctionnant sous le . sont configurés backend Backend Web . Lors de la configuration, remplacez les adresses IP par les adresses IP correspondantes de vos serveurs Web.

Configurer la surveillance HAproxy

Avec la surveillance HAproxy, vous pouvez afficher de nombreuses informations, notamment l'état du serveur, les données transférées, la disponibilité, le taux de session, etc. Pour configurer la surveillance HAproxy, ajoutez les lignes suivantes au fichier de configuration dans /etc/haproxy/haproxy.cfg :

écouter les statistiques
lier 192.168.72.157:8080
mode http
option forwardfor
option httpclose
activer les statistiques
statistiques afficher les légendes
mise à jour des statistiques 5s
stats /stats
stats realm haproxy stats
stats auth kbuzdar:kbuzdar #login user and password for monitoring
stats admin if TRUE
default_backend web backend

La configuration ci-dessus active le HAproxy "Statistiques “ Page Statistiques stratégie et sécurisez-la avec http Authentification de base avec nom d'utilisateur et mot de passe obtenus à partir de l'authentification statistique Politique.

Lorsque vous avez terminé avec les configurations, enregistrez et fermez le fichier haproxy.cfg.

Vérifiez maintenant le fichier de configuration à l'aide de la commande suivante dans le terminal :

$ happy -C -F /etc/happy/haproxy.cfg

La sortie suivante montre que les configurations sont correctes.

Maintenant, pour appliquer les configurations, redémarrez le service HAproxy :

$ sudo systemctl redémarrer haproxy.service

Il arrête puis démarre le service HAproxy.

Pour vérifier l'état du service HAproxy, la commande est :

$ sudo systemctl-status haproxy.service

Le actif (en cours) status dans la sortie suivante indique que le serveur HAproxy est activé et fonctionne correctement.

Voici quelques autres commandes pour gérer le serveur HAproxy :

Pour démarrer le serveur HAproxy, la commande est :

$ sudo systemctl start haproxy.service

Pour arrêter le serveur HAproxy, la commande est :

$ sudo systemctl stop haproxy.service

Si vous souhaitez désactiver temporairement le serveur HAproxy, la commande est :

$ sudo systemctl désactiver haproxy.service

Pour réactiver le serveur HAproxy, la commande est :

$ sudo systemctl activer haproxy.service

Tester HAproxy

Avant de tester la configuration de HAproxy, assurez-vous que vous disposez d'une connectivité aux serveurs Web. Depuis votre serveur HAproxy, envoyez un ping aux deux serveurs Web en utilisant soit leurs adresses IP, soit leurs noms d'hôte.

$ ring nom d'hôte ou adresse IP

La sortie suivante montre que le serveur HAproxy peut atteindre les deux serveurs Web.

Testez le proxy haute disponibilité avec un navigateur Web

Ouvrez maintenant n'importe quel navigateur Web sur votre serveur HAproxy et tapez https:// suivi de l'adresse IP du serveur HAproxy, qui dans notre cas est 192.168.72.157.

https://192.168.72.157

Le serveur HAproxy envoie alternativement la requête aux deux serveurs Web dans le cadre d'une procédure circulaire. Vous pouvez tester cela en rechargeant la page Web plusieurs fois.

Voici la réponse que nous avons reçue lorsque nous avons vu pour la première fois le https://192.168.72.157 :

Voici la réponse que nous avons obtenue lors du rechargement de la page Web :

Vous pouvez également utiliser le nom d'hôte au lieu de l'adresse IP du serveur HAproxy.

Tester le proxy HA avec curl

Vous pouvez également utiliser la commande curl sous Linux pour tester la configuration de HAproxy. Ouvrez le terminal et tapez curl suivi de l'adresse IP ou du nom d'hôte du serveur HAproxy.

$ boucles 192.168.72.157

ou

$ curl HAproxy

Exécutez la commande curl plusieurs fois et vous verrez la réponse alterner entre les deux serveurs Web.

Au lieu d'exécuter les commandes plusieurs fois, vous pouvez également exécuter le script d'une ligne suivant pour tester le serveur HAproxy :

$ tant que vrai ; faites curl 192.168.72.157; sommeil 1 ; a fait

Tester la surveillance HAproxy

Pour accéder à la page de surveillance HAproxy, tapez https:// suivi de l'adresse IP/du nom d'hôte du serveur HAproxy et du port 8080/stats :

https://192.168.72.157:8080/Statistiques

ou

https://HA-Proxy:8080/Statistiques

La boîte d'authentification suivante apparaîtra. Entrez le nom d'utilisateur et mot de passe précédemment configuré dans les configurations, puis appuyez sur OK .

Ceci est le rapport statistique de notre serveur HAproxy.

Là, vous avez l'installation et la configuration de l'équilibreur de charge HAproxy sur le système Linux. Nous venons de discuter de l'installation et de la configuration de base de HAproxy en tant qu'équilibreur de charge pour les serveurs Web Apache. Nous avons également examiné certaines commandes pour gérer le serveur HAproxy. Au final, nous avons testé l'équilibrage de charge via le navigateur et la commande curl. Pour plus d'informations, consultez la documentation officielle de HAproxy


Debian
  1. Comment installer et configurer l'équilibreur de charge HAProxy sur Debian 11

  2. Comment configurer Nginx en tant que proxy inverse pour Apache sur Debian 11

  3. Comment installer l'adaptateur WiFi USB TP-Link sur Debian 10

  4. Comment installer Node.js &NPM sur Debian 11

  5. Comment installer Magento sur Debian 8 Jessie

Comment installer Pantheon Desktop sur Ubuntu 20.04 LTS

Faire de Debian un point d'accès sans fil

Comment réparer le chargeur de démarrage GRUB à l'aide d'un lecteur USB Ubuntu Live

Comment installer Joomla sur CentOS 7

Comment créer un serveur TeamSpeak sous Linux, Windows et macOS

Comment supprimer des fichiers plus anciens que les jours spécifiés sous Linux