1. Validation et CLI #
Identifier la version et valider l'intégrité de votre configuration.
Vérification de la version #
Il est essentiel de vérifier les capacités de votre binaire, notamment pour le support SSL/TLS ou Lua.
# Version simple
haproxy -v
# Version détaillée (indispensable pour le débug)
haproxy -vvLa commande -vv affiche les bibliothèques liées (OpenSSL, PCRE, etc.) et les options de compilation qui peuvent restreindre certaines fonctionnalités.
Test de configuration #
Règle d'or : Ne jamais recharger un service en production sans valider la syntaxe. Une erreur de virgule peut arrêter le service.
# -c : check mode, -f : spécifie le fichier
haproxy -c -f /etc/haproxy/haproxy.cfgHAProxy permet de charger plusieurs fichiers. L'ordre des -f est important car les directives sont lues séquentiellement.
2. Gestion du Service #
Piloter le cycle de vie selon votre environnement.
Systemd (Linux) #
Privilégiez le reload au restart. Le reload utilise le signal USR2 pour lancer un nouveau processus tout en laissant l'ancien terminer les connexions en cours (Hitless Reload).
# Rechargement sans coupure
sudo systemctl reload haproxy
# Vérification du statut du service
sudo systemctl status haproxyDocker & Docker Compose #
Dans un conteneur, redémarrer le conteneur coupe les connexions. Utilisez le signal SIGHUP pour déclencher le rechargement interne de HAProxy.
# Envoyer le signal HUP au processus 1 du conteneur
docker kill -s HUP <container_name>
# Consulter les logs de santé et de trafic
docker logs --tail 100 -f <container_name>3. Runtime API via Socat #
Interagir avec HAProxy en temps réel via la socket UNIX.
Lecture d'informations #
La socket permet de parler directement au moteur. Elle doit être définie dans global avec un niveau admin.
# Extraire les stats au format CSV
echo "show stat" | socat stdio /var/run/haproxy.stat
# Voir les infos de santé globale (Uptime, Process ID, etc.)
echo "show info" | socat stdio /var/run/haproxy.statActions à chaud #
Ces modifications sont immédiates et ne nécessitent pas de reload, mais elles sont volatiles (perdues au prochain restart si non reportées dans le .cfg).
# Sortir un serveur du pool (Drain)
echo "set server web_servers/srv1 state maint" | socat stdio /var/run/haproxy.stat
# Changer dynamiquement le ratio de trafic (Weight)
echo "set server web_servers/srv1 weight 10" | socat stdio /var/run/haproxy.stat4. Débogage #
Outils pour l'analyse réseau.
Mode interactif #
Le mode -db (disable background) est parfait pour le développement. Il affiche toutes les alertes et erreurs directement dans le terminal.
haproxy -db -f /etc/haproxy/haproxy.cfgVérification des ports #
Vérifiez que HAProxy écoute bien sur les interfaces et ports attendus (80, 443, 8404).
sudo ss -tlpn | grep haproxyConclusion #
Astuce de production #
Privilégiez toujours le signal HUP (ou systemctl reload) plutôt qu'un restart pour éviter de rejeter les connexions clients en cours lors d'une mise à jour de configuration.
Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
💬 Questions sur cette leçon
Aucune question pour l'instant : soyez le premier à demander de l'aide ou à partager votre configuration.
Glossaire de la formation
ACL (Access Control List)
Liste de contrôle d'accès définissant les permissions accordées sur des ressources. Dans HAProxy, les ACL sont des conditions flexibles permettant de ...
Backend
Section de la configuration HAProxy définissant un pool de serveurs cibles vers lesquels le trafic est redirigé. C'est ici que l'on configure l'algori...
Frontend
Section de la configuration HAProxy qui définit comment les requêtes sont reçues du côté client (adresse IP, port, certificats SSL) avant d'être envoy...
GSLB (Global Server Load Balancing)
Technique de répartition de charge à l'échelle mondiale, utilisant généralement le DNS pour diriger les utilisateurs vers le datacenter le plus proche...
HAProxy
Logiciel de load balancing et de proxying haute performance pour TCP et HTTP. HAProxy est le standard de l'industrie pour la gestion de trafic à très ...
Health Check
Mécanisme automatisé permettant au load balancer de tester périodiquement la disponibilité des serveurs afin d'exclure temporairement ceux qui sont en...
Load Balancing
Dispositif qui distribue le trafic applicatif sur un ensemble de serveurs afin d'optimiser l'usage des ressources, de minimiser les temps de réponse e...
SSL Offloading
Processus consistant à déléguer le déchiffrement du trafic HTTPS au load balancer pour libérer de la puissance CPU sur les serveurs d'application.
Stickiness
Mécanisme garantissant qu'un utilisateur est systématiquement redirigé vers le même serveur backend durant toute sa session, indispensable pour les ap...
Slowloris
Type d'attaque par déni de service (DoS) qui consiste à ouvrir de nombreuses connexions HTTP et à les maintenir ouvertes le plus longtemps possible en...
DoS / DDoS
Attaque visant à rendre un service indisponible en submergeant le serveur ou le réseau de trafic. On parle de DDoS (Distributed Denial of Service) lor...
SSL / TLS
Protocoles de sécurisation des échanges sur internet. TLS (Transport Layer Security) est le successeur moderne de SSL (Secure Sockets Layer). Ils perm...
Articles recommandés
Aide-mémoire Docker : Les commandes essentielles
Un guide pratique regroupant toutes les commandes indispensables pour manipuler les images, les c...
Aide-mémoire kubectl : les commandes essentielles
Toutes les commandes kubectl utiles au quotidien : contextes, ressources, logs, exec, port-forwar...
Anatomie de la configuration HAProxy, Clustering et Haute Disponibilité
Comprendre la structure d'un fichier haproxy.cfg : sections global, defaults, frontend (haute per...
HAProxy : Guide détaillé des directives de configuration
Une exploration complète des directives essentielles de HAProxy : de bind à http-check, apprenez ...
HAProxy : Ajout et suppression dynamique de backends
Découvrez comment utiliser la Runtime API de HAProxy pour créer, configurer et supprimer des back...
Installation de HAProxy
Guide complet pour installer HAProxy sur les serveurs Linux (Debian, RedHat) et via des environne...
HAProxy dans Kubernetes : L'Ingress Controller Haute Performance
Découvrez en profondeur l'intégration de HAProxy dans Kubernetes. Architecture Direct-to-Pod, opt...
HAProxy comme Ingress Controller Kubernetes : Le Guide de Production
Découvrez comment utiliser HAProxy comme Ingress Controller dans Kubernetes. Architecture Direct-...
Bonnes Pratiques HAProxy : Optimisation, Sécurité et Haute Disponibilité
Découvrez les meilleures pratiques pour configurer HAProxy afin d'assurer performance, sécurité e...