Comment installer et configurer HAProxy sur Rocky Linux 8

Lorsque tu déploies une application sur Internet, la disponibilité, l’évolutivité et les performances de l’application sont très importantes pour une meilleure expérience utilisateur. Il existe de nombreuses technologies qui introduisent la redondance, comme l’équilibrage de charge, le clustering et le proxy.

HAProxy est un équilibreur de charge gratuit, open source et fiable conçu pour les sites Web à fort trafic. Il équilibre la charge du trafic entrant en le répartissant sur plusieurs serveurs dorsaux.

Dans cet article, nous te montrons comment installer HAProxy sur Rocky Linux 8.

Pour les besoins de ce tutoriel, nous utiliserons la configuration suivante :

Serveur Adresse IP

HAProxy 172.16.10.10

Backend1 172.16.10.11

Backend2 172.16.10.12

Conditions préalables

  • Un serveur exécutant RockyLinux 8.
  • Un mot de passe root est configuré sur le serveur.

Installer HAProxy

Par défaut, le paquet HAProxy est disponible dans le repo par défaut de Rocky Linux 8. Tu peux l’installer avec la commande suivante :

dnf install haproxy -y

Une fois que HAProxy est installé, démarre le service HAProxy et active son démarrage au redémarrage du système :

systemctl start haproxy
systemctl enable haproxy

Configurer HAProxy

Ensuite, tu devras éditer le fichier /etc/haproxy/haproxy.cfg et modifier deux sections : frontend et backend. Dans la section Frontend, tu devras définir l’IP de HAProxy, son port, l’URI des statistiques et le nom du backend. Dans la section Backend, tu devras définir l’algorithme d’équilibrage des charges, le nom du serveur backend, ses IP et son port.

nano /etc/haproxy/haproxy.cfg

Modifie les sections suivantes :

frontend http_balancer
    bind 172.16.10.10:80
    option http-server-close
    option forwardfor
    stats uri /haproxy?stats

default_backend     Apache_webservers

backend apache_webservers
    mode        http
    balance     roundrobin
    option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost    
    server  apache1  172.16.10.11:80  check
    server  apache2  172.16.10.12:80  check

Sauvegarde et ferme le fichier lorsque tu as terminé, tu devras ensuite modifier le fichier /etc/rsyslog.conf.

nano /etc/rsyslog.conf

Décommente les lignes suivantes :

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

Sauvegarde et ferme le fichier puis crée le fichier haproxy.conf pour rsyslog avec la commande suivante :

nano /etc/rsyslog.d/haproxy.conf

Ajoute les lignes suivantes :

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

Ensuite, démarre le service rsyslog et active-le pour qu’il démarre au redémarrage du système :

systemctl start rsyslog
systemctl enable rsyslog

Enfin, redémarre le service HAProxy pour appliquer les modifications :

systemctl restart haproxy

Tu peux aussi vérifier l’état du service HAProxy avec la commande suivante :

systemctl status haproxy

Tu devrais voir la sortie suivante :

? haproxy.service - HAProxy Load Balancer
   Loaded: loaded (/usr/lib/systemd/system/haproxy.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2021-08-03 03:10:37 EDT; 1min 16s ago
  Process: 44032 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 44036 (haproxy)
    Tasks: 2 (limit: 12524)
   Memory: 3.1M
   CGroup: /system.slice/haproxy.service
           ??44036 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
           ??44111 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid

Aug 03 03:10:36 RockyLinux8 systemd[1]: Starting HAProxy Load Balancer...
Aug 03 03:10:37 RockyLinux8 systemd[1]: Started HAProxy Load Balancer.

Configurer le pare-feu

Ensuite, tu devras configurer firewalld sur tous les serveurs et autoriser le port 80 à travers le pare-feu.

Tu peux exécuter la commande suivante pour autoriser le port 80 :

firewall-cmd --permanent --add-port=80/tcp

Ensuite, recharge le service firewalld pour appliquer les modifications.

firewall-cmd --reload

Configurer les serveurs dorsaux

Ensuite, tu devras installer le serveur Apache sur les deux serveurs backend. Exécute la commande suivante pour installer le serveur Apache.

dnf install httpd -y

Une fois le serveur Apache installé, démarre le service Apache et active-le pour qu’il démarre au redémarrage du système :

systemctl start httpd
systemctl enable httpd

Ensuite, tu devras modifier le fichier index.html par défaut sur les deux serveurs backend.

Sur le premier backend, modifie le fichier index.html avec la commande suivante :

nano /usr/share/httpd/noindex/index.html

Supprime toutes les lignes et ajoute la ligne suivante :

Welcome to First Apache Web Server!

Sauvegarde et ferme le fichier lorsque tu as terminé.

Sur le deuxième serveur dorsal, modifie le fichier index.html avec la commande suivante :

nano /usr/share/httpd/noindex/index.html

Supprime toutes les lignes et ajoute la ligne suivante :

Welcome to Second Apache Web Server!

Sauvegarde et ferme le fichier lorsque tu as terminé.

Vérifie HAProxy

À ce stade, HAProxy est configuré pour transmettre toutes les demandes entrantes aux serveurs backend en fonction de l’algorithme d’équilibrage des charges. Maintenant, il est temps de vérifier si HAProxy fonctionne correctement ou non.

Ouvre ton navigateur Web et tape l’IP de HAProxy dans l’URL http://172.16.10.10. Tu devrais voir ta première page de serveur Web Apache :

Premier serveur

Ensuite, rafraîchis à nouveau la même page, tu devrais voir ta deuxième page de serveur Web apache :

Second serveur

Cela confirme que HAProxy fonctionne comme prévu et qu’il distribue le trafic entre deux serveurs dorsaux.

Conclusion

Félicitations ! Tu as réussi à installer et à configurer l’équilibreur de charge HAProxy sur Rocky Linux 8. Tu peux maintenant mettre en œuvre HAProxy dans l’environnement de production pour obtenir des performances et une évolutivité élevées.

Vous aimerez aussi...