Lorsque vous déployez 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, telles que 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 principaux.
Dans cet article, nous vous montrons comment installer HAProxy sur Rocky Linux 8.
Pour les besoins de ce didacticiel, nous utiliserons la configuration suivante :
Serveur Adresse IP
HA Proxy 172.16.10.10
Backend1 172.16.10.11
Backend2 172.16.10.12
Prérequis
- Un serveur exécutant RockyLinux 8.
- Un mot de passe root est configuré sur le serveur.
Installer HAProxy
Par défaut, le package HAProxy est disponible dans le dépôt par défaut de Rocky Linux 8. Vous pouvez l'installer avec la commande suivante :
dnf install haproxy -y
Une fois HAProxy installé, démarrez le service HAProxy et activez-le pour qu'il démarre au redémarrage du système :
systemctl start haproxy
systemctl enable haproxy
Configurer HAProxy
Ensuite, vous devrez éditer le fichier /etc/haproxy/haproxy.cfg et modifier deux sections frontend et backend. Dans la section Frontend, vous devrez définir HAProxy IP son port, l'URI des statistiques et le nom du backend. Dans la section Backend, vous devrez définir l'algorithme d'équilibrage de charge, le nom du serveur backend, les adresses IP et le port.
nano /etc/haproxy/haproxy.cfg
Modifiez 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
Enregistrez et fermez le fichier lorsque vous avez terminé, puis vous devrez modifier le fichier /etc/rsyslog.conf.
nano /etc/rsyslog.conf
Décommentez les lignes suivantes :
module(load="imudp") input(type="imudp" port="514")
Enregistrez et fermez le fichier puis créez le fichier haproxy.conf pour rsyslog avec la commande suivante :
nano /etc/rsyslog.d/haproxy.conf
Ajoutez les lignes suivantes :
local2.=info /var/log/haproxy-access.log local2.notice /var/log/haproxy-info.log
Ensuite, démarrez le service rsyslog et activez-le au redémarrage du système :
systemctl start rsyslog
systemctl enable rsyslog
Enfin, redémarrez le service HAProxy pour appliquer les modifications :
systemctl restart haproxy
Vous pouvez également vérifier l'état du service HAProxy avec la commande suivante :
systemctl status haproxy
Vous devriez voir 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 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, vous devrez configurer firewalld sur tous les serveurs et autoriser le port 80 à travers le pare-feu.
Vous pouvez exécuter la commande suivante pour autoriser le port 80 :
firewall-cmd --permanent --add-port=80/tcp
Ensuite, rechargez le service firewalld pour appliquer les modifications.
firewall-cmd --reload
Configurer les serveurs principaux
Ensuite, vous devrez installer le serveur Apache sur les deux serveurs principaux. Exécutez la commande suivante pour installer le serveur Apache.
dnf install httpd -y
Une fois le serveur Apache installé, démarrez le service Apache et activez-le au redémarrage du système :
systemctl start httpd
systemctl enable httpd
Ensuite, vous devrez modifier le fichier index.html par défaut sur les deux serveurs principaux.
Sur le premier backend, éditez le fichier index.html avec la commande suivante :
nano /usr/share/httpd/noindex/index.html
Supprimez toutes les lignes et ajoutez la ligne suivante :
Welcome to First Apache Web Server!
Enregistrez et fermez le fichier lorsque vous avez terminé.
Sur le second backend, éditez le fichier index.html avec la commande suivante :
nano /usr/share/httpd/noindex/index.html
Supprimez toutes les lignes et ajoutez la ligne suivante :
Welcome to Second Apache Web Server!
Enregistrez et fermez le fichier lorsque vous avez terminé.
Vérifier HAProxy
À ce stade, HAProxy est configuré pour transmettre toutes les demandes entrantes aux serveurs principaux en fonction de l'algorithme d'équilibrage de charge. Il est maintenant temps de vérifier si HAProxy fonctionne correctement ou non.
Ouvrez votre navigateur Web et saisissez l'IP HAProxy dans l'URL http://172.16.10.10 . Vous devriez voir votre première page de serveur Web apache :
Ensuite, actualisez à nouveau la même page, vous devriez voir votre deuxième page de serveur Web apache :
Cela confirme que HAProxy fonctionne comme prévu et qu'il distribue le trafic entre deux serveurs principaux.
Conclusion
Toutes nos félicitations! vous avez installé et configuré avec succès l'équilibreur de charge HAProxy sur Rocky Linux 8. Vous pouvez maintenant implémenter HAProxy dans l'environnement de production pour obtenir des performances et une évolutivité élevées.