1. Validation et CLI
Identifier la version et valider l'intégrité de votre configuration.
Vérification de la version
Pour connaître les options de compilation (SSL, Lua, etc.) :
haproxy -v
# Version détaillée
haproxy -vv
Test de configuration
Important : Toujours tester avant de recharger.
# Tester le fichier par défaut
haproxy -c -f /etc/haproxy/haproxy.cfg
# Tester avec un dossier d'inclusions
haproxy -c -f /etc/haproxy/haproxy.cfg -f /etc/haproxy/conf.d/
2. Gestion du Service
Piloter le cycle de vie selon votre environnement.
Systemd (Linux)
# Rechargement à chaud (Zero Downtime)
sudo systemctl reload haproxy
# Statut et logs récents
sudo systemctl status haproxy
Docker & Docker Compose
# Envoyer un signal de reload (HUP)
docker kill -s HUP <container_name>
# Voir les logs de trafic
docker logs -f <container_name>
3. Runtime API via Socat
Interagir avec HAProxy en temps réel via la socket UNIX.
Lecture d'informations
Requiert stats socket configuré dans la section global.
# Statistiques de trafic
echo "show stat" | socat stdio /var/run/haproxy.stat
# État des serveurs
echo "show servers state" | socat stdio /var/run/haproxy.stat
Actions à chaud
# Passer un serveur en maintenance
echo "set server backend_web/srv1 state maint" | socat stdio /var/run/haproxy.stat
# Modifier le poids d'un serveur
echo "set server backend_web/srv1 weight 50" | socat stdio /var/run/haproxy.stat
# Activer un serveur
echo "set server backend_web/srv1 state ready" | socat stdio /var/run/haproxy.stat4. Débogage
Outils pour l'analyse réseau.
Mode interactif
Lancer HAProxy au premier plan pour voir les erreurs de négociation SSL ou de routage :
haproxy -db -f /etc/haproxy/haproxy.cfg
Vérification des ports
sudo ss -tpln | grep haproxy
Conclusion
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.