Publié le : 12/12/2024 à 10:00 Mis à jour le : 13/06/2026 à 13:08 Vues : 502

Un guide pratique regroupant toutes les commandes indispensables pour installer, gérer, tester et déboguer HAProxy au quotidien (CLI, Systemd, Docker et Runtime API).

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.stat

4. 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.

Lien copié dans le presse-papiers !