HA Proxy signifie High Availability Proxy, c'est un outil d'équilibrage de charge gratuit et open source qui permet d'équilibrer le trafic entrant (TCP et basé sur HTTP ) en répartissant sur les serveurs principaux en utilisant différents critères.
En d'autres termes, nous pouvons dire que HAProxy est utilisé pour fournir une tolérance aux pannes et une haute disponibilité dans le cas où un nœud reçoit trop de demandes simultanées. Il est utilisé par la plupart des sites Web célèbres tels que GitHub, Stack Overflow et Tumbler.
Dans cet article, nous expliquerons comment installer et configurer HAProxy sur CentOS 8/RHEL 8 pour les serveurs Web Nginx. Voici les détails de la configuration de mon laboratoire haproxy,
- Serveur HAProxy – 192.168.1.10 (haproxy-centos8)
- Serveur Nginx 1 – 192.168.1.11 (nginx-node01)
- Serveur Nginx 2 – 192.168.1.12 (nginx-node01)
Passons aux étapes d'installation et de configuration de HAProxy sur CentOS 8 / RHEL 8
Étape :1) Mettez à jour le fichier /etc/hosts de votre serveur HAProxy
Connectez-vous à votre système CentOS 8 ou RHEL 8 où vous allez installer haproxy, ajoutez les lignes suivantes dans le fichier /etc/hosts,
192.168.1.10 haproxy-centos8 192.168.1.11 nginx-node01 192.168.1.12 nginx-node02
Après avoir mis à jour le fichier hosts, assurez-vous que vous pouvez envoyer un ping aux nœuds Nginx,
Étape :2) Installez et configurez HAProxy sur CentOS 8 / RHEL 8
Le package Haproxy est disponible dans les référentiels de packages par défaut de CentOS 8 et RHEL 8, il peut donc être facilement installé avec la commande dnf. Mais il est recommandé de mettre à jour votre système avant d'installer haproxy. Exécutez donc la commande suivante,
[email protected] ~]# dnf update -y [email protected] ~]# reboot
Utilisez maintenant la commande dnf suivante pour installer haproxy,
[[email protected] ~]# dnf install haproxy
Une fois l'haproxy installé avec succès, configurez-le en éditant son fichier de configuration "/etc/haproxy/haproxy.cfg ".
Avant de modifier le fichier, il est toujours recommandé de faire une sauvegarde du fichier d'origine, exécutez la commande suivante,
[[email protected] ~]# cd /etc/haproxy/ [[email protected] haproxy]# cp haproxy.cfg haproxy.cfg-org [[email protected] haproxy]#
Dans le fichier de configuration, nous allons modifier deux sections frontend et backend . Dans la section Frontend, nous définissons l'adresse IP haproxy et son port, l'uri des statistiques et le nom du backend. Dans la section Backend, nous définissons le type d'algorithme d'équilibrage de charge que nous utiliserons, comme le round robin et la moindre connexion, etc., ainsi que le nom, les adresses IP et le port du serveur backend, l'exemple est illustré ci-dessous,
[[email protected] haproxy]# vi haproxy.cfg ………………… frontend http_balancer bind 192.168.1.10:80 option http-server-close option forwardfor stats uri /haproxy?stats # acl url_static path_beg -i /static /images /javascript /stylesheets # acl url_static path_end -i .jpg .gif .png .css .js # use_backend static if url_static default_backend nginx_webservers backend nginx_webservers mode http balance roundrobin option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost server nginx-node01 192.168.1.11:80 check server nginx-node02 192.168.1.12:80 check ………………………………
Enregistrez et quittez le fichier
Configurez rsyslog pour qu'il stocke toutes les statistiques HAProxy, modifiez le fichier de configuration rsyslog "/etc/rsyslog.conf ” et décommentez les lignes 19 et 20,
[[email protected] ~]# vi /etc/rsyslog.conf …… module(load="imudp") input(type="imudp" port="514") ……
Enregistrez et quittez le fichier.
Créez maintenant le fichier haproxy.conf pour rsyslog , collez les lignes suivantes,
[[email protected] ~]# vi /etc/rsyslog.d/haproxy.conf local2.=info /var/log/haproxy-access.log local2.notice /var/log/haproxy-info.log
enregistrer et quitter le fichier
Redémarrez et activez le service rsyslog afin qu'il soit disponible lors des redémarrages
[[email protected] ~]# systemctl restart rsyslog [[email protected] ~]# systemctl enable rsyslog
Enfin, démarrez haproxy mais avant de démarrer le service haproxy, définissez la règle selinux suivante,
[[email protected] ~]# setsebool -P haproxy_connect_any 1
Démarrez et activez haproxy en utilisant les commandes systemctl ci-dessous
[[email protected] ~]# systemctl start haproxy [[email protected] ~]# systemctl enable haproxy
Autorisez le port haproxy (dans notre cas, il s'agit de 80) dans le pare-feu du système d'exploitation, exécutez la commande ci-dessous firewall-cmd,
[[email protected] ~]# firewall-cmd --permanent --add-port=80/tcp [[email protected] ~]# firewall-cmd --reload
Jusqu'à présent, la partie installation et configuration de HAProxy est terminée, passons aux nœuds Nginx,
Étape 3) Installez NGINX et démarrez son service
Connectez-vous aux deux nœuds nginx, installez nginx et démarrez son service à l'aide des commandes suivantes.
# dnf install nginx -y # systemctl start nginx # systemctl enable nginx
Modifions le fichier index.html du nœud respectif,
Pour nginx-node01
[[email protected] ~]# cd /usr/share/nginx/html [[email protected] html]# echo "Nginx Node01 - Welcome to First Nginx Web Server" > index.html
Pour nginx-node02
[[email protected] ~]# cd /usr/share/nginx/html [[email protected] html]# echo "Nginx Node02 - Welcome to 2nd Nginx Web Server" > index.html
Autoriser le port Nginx (80) dans le pare-feu du système d'exploitation dans les deux nœuds à l'aide de la commande ci-dessous,
# firewall-cmd --permanent --add-service=http # firewall-cmd --reload
Étape 4) Testez si votre HAProxy fonctionne correctement ou non
Connectez-vous au serveur haproxy et exécutez la commande curl plusieurs fois pour voir si le trafic est distribué de manière circulaire
[[email protected] ~]# curl 192.168.1.10
Parfait, cela confirme que haproxy fonctionne correctement car il distribue le trafic entre deux nœuds,
Vérifions également à partir du navigateur Web,
Ci-dessus confirme que HAProxy a été configuré avec succès sur CentOS 8 et RHEL 8.
Vous pouvez voir l'état de votre haproxy via un navigateur Web, tapez url :http://
Dans notre cas, l'URL sera http://192.168.1.10/haproxy?stats
Nous pouvons également afficher les statistiques HAProxy à partir du fichier journal ( /var/log/haproxy-access.log ).
C'est tout ce tutoriel, j'espère que ces étapes vous aideront à configurer HAProxy sur CentOS 8 et RHEL 8 en douceur. Veuillez partager vos précieux commentaires et commentaires.
Lire aussi :Comment configurer Django Python Framework sur CentOS 8