Dans ce didacticiel, nous allons vous montrer comment installer HAProxy sur votre CentOS 8. Pour ceux d'entre vous qui ne le savaient pas, HAProxy est un équilibreur de charge et un proxy HTTP/TCP haute disponibilité gratuits serveur. Il répartit les demandes entre plusieurs serveurs pour atténuer les problèmes résultant d'une défaillance d'un seul serveur. Le proxy HA est utilisé par un certain nombre de sites Web de haut niveau, notamment GitHub, Bitbucket, Stack Overflow, Reddit, Tumblr, Twitter et Tuenti, et est utilisé dans le produit OpsWorks d'Amazon Web Services.
Cet article suppose que vous avez au moins des connaissances de base sur Linux, que vous savez utiliser le shell et, plus important encore, que vous hébergez votre site sur votre propre VPS. L'installation est assez simple et suppose que vous s'exécutent dans le compte root, sinon vous devrez peut-être ajouter 'sudo
‘ aux commandes pour obtenir les privilèges root. Je vais vous montrer l'installation pas à pas de HAProxy sur CentOS 8.
Prérequis
- Un serveur exécutant l'un des systèmes d'exploitation suivants :CentOS 8.
- Il est recommandé d'utiliser une nouvelle installation du système d'exploitation pour éviter tout problème potentiel.
- Accès SSH au serveur (ou ouvrez simplement Terminal si vous êtes sur un ordinateur).
- Un
non-root sudo user
ou l'accès à l'root user
. Nous vous recommandons d'agir en tant qu'non-root sudo user
, cependant, car vous pouvez endommager votre système si vous ne faites pas attention lorsque vous agissez en tant que root.
Installer HAProxy sur CentOS 8
Étape 1. Tout d'abord, commençons par nous assurer que votre système est à jour.
sudo clean all sudo dnf update
Étape 2. Installation de HAProxy sur CentOS 8.
HAProxy est disponible sur le CentOS 8 par défaut, utilisez maintenant le dnf
suivant une commande pour installer HAProxy :
sudo dnf install haproxy
Étape 3. Configuration de HAProxy.
Nous allons créer un fichier de configuration /etc/haproxy/haproxy.cfg
contenant les paramètres et configurations nécessaires :
sudo nano /etc/haproxy/haproxy.cfg
Entrez ce qui suit dans le fichier :
global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon stats socket /var/lib/haproxy/stats ssl-default-bind-ciphers PROFILE=SYSTEM ssl-default-server-ciphers PROFILE=SYSTEM defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 frontend main bind *:5000 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 app backend static balance roundrobin server static 127.0.0.1:4331 check backend app balance roundrobin server app1 127.0.0.1:5001 check server app2 127.0.0.1:5002 check server app3 127.0.0.1:5003 check server app4 127.0.0.1:5004 check
Vous pouvez afficher les détails de la configuration et plus d'informations sur cette URL. Une fois que vous avez configuré HAProxy, il est temps de démarrer le service :
sudo systemctl start haproxy sudo systemctl enable haproxy
Étape 4. Configurez le pare-feu.
Nous allons ajouter le HAProxy au pare-feu CentOS 8 et mettre à jour les règles avec les commandes suivantes :
sudo firewall-cmd --add-port=8088/tcp --permanent sudo firewall-cmd --reload
Étape 5. Configurez la journalisation HAProxy.
Pour configurer la journalisation standard HAProxy, modifiez /etc/rsyslog.conf
et activez la réception UDP Syslog sur le port 514 :
sudo nano /etc/rsyslog.conf
... # Provides UDP syslog reception # for parameters see http://www.rsyslog.com/doc/imudp.html module(load="imudp") # needs to be done just once input(type="imudp" port="514") ... *.info;mail.none;authpriv.none;cron.none,local2.none /var/log/messages local2.* /var/log/haproxy.log ...
Ensuite, enregistrez le fichier de configuration et exécutez la commande ci-dessous pour rechercher d'éventuelles erreurs :
rsyslogd -N1 sudo systemctl restart rsyslog haproxy
Étape 6. Configurez Apache X-Forwarded-For Logging sur les serveurs principaux.
Maintenant, nous nous connectons aux serveurs principaux et configurons Apache pour enregistrer les en-têtes X-Forwarded-For. La ligne par défaut que nous modifions est :
... LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common ...
Modifiez cette ligne pour qu'elle ressemble à :
... LogFormat "\"%{X-Forwarded-For}i\" %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common ...
Enregistrez le fichier et redémarrez Apache :
apachectl configtest sudo systemctl restart httpd
Étape 7. Test de l'équilibreur de charge HAProxy.
Pour vérifier que HAProxy est capable d'équilibrer la charge des requêtes HTTP, accédez au navigateur et accédez à HAProxy à l'aide du nom d'hôte ou de l'adresse IP.
Félicitations ! Vous avez installé HAProxy avec succès. Merci d'avoir utilisé ce didacticiel pour installer HAProxy sur vos systèmes CentOS 8. Pour obtenir de l'aide supplémentaire ou des informations utiles, nous vous recommandons de consulter le site Web officiel de HAProxy.