Publié le : 10/12/2024 à 10:00 Mis à jour le : 07/06/2026 à 13:41 Vues : 520

Guide complet pour installer HAProxy sur les serveurs Linux (Debian, RedHat) et via des environnements conteneurisés (Docker, Kubernetes).

1. Différences entre HAProxy Community et Enterprise

Comprendre les distinctions clés entre les deux éditions de HAProxy pour choisir celle qui correspond le mieux à vos besoins.

HAProxy Community

La version Community est le cœur open-source de HAProxy, développée et maintenue par une communauté active.

Avantages :
  • Gratuite et Open Source : Accès libre au code source et aucune licence requise.
  • Innovation : Bénéficie des dernières fonctionnalités et innovations rapidement.
  • Flexibilité : Peut être compilée à partir des sources avec des options spécifiques pour des besoins très précis.
  • Communauté : Support via forums, listes de diffusion et contributions de la communauté.
Inconvénients :
  • Support : Pas de support commercial officiel ou de SLA (Service Level Agreement).
  • Cycles de vie : Les versions peuvent avoir des cycles de support plus courts, nécessitant des mises à jour plus fréquentes.
  • Fonctionnalités avancées : Certaines fonctionnalités (WAF avancé, protection bot) ne sont pas incluses nativement ou nécessitent une intégration manuelle complexe.
  • Gestion : Pas de tableau de bord de gestion intégré, s'appuie sur des outils tiers pour la surveillance et la configuration.
Comment la reconnaître ?

Via la ligne de commande haproxy -v, la sortie affichera généralement HAProxy version X.Y.Z sans mention spécifique d'« Enterprise » ou « HAPEE ». Les noms de paquets sont souvent haproxy.

HAProxy Enterprise (HAPEE)

HAProxy Enterprise est une version commerciale de HAProxy, conçue pour les environnements de production critiques.

Avantages :
  • Support Commercial : Accès à un support technique 24/7 avec des SLA.
  • Stabilité et LTS : Versions Long Term Support (LTS) avec des correctifs de sécurité et de bugs rétroportés, garantissant une grande stabilité.
  • Fonctionnalités exclusives : Intègre des modules avancés tels qu'un WAF (Web Application Firewall) sophistiqué, une protection contre les bots, des capacités d'API Gateway, et des optimisations de performance spécifiques.
  • Gestion Centralisée : Fournit une interface de gestion graphique (HAProxy Enterprise Suite) pour la configuration, la surveillance et l'analyse.
  • Intégration : Optimisée pour l'intégration avec les écosystèmes Cloud et les outils d'orchestration.
Inconvénients :
  • Coût : Nécessite une licence commerciale.
  • Innovation : Peut introduire les toutes dernières fonctionnalités de la version Community avec un léger décalage, privilégiant la stabilité.
Comment la reconnaître ?

La commande haproxy -v affichera HAProxy Enterprise Edition ou HAPEE. Les noms de paquets suivent le format hapee-X.Y-lb.

En résumé

Avant de procéder à l'installation, il est important de choisir l'édition adaptée à vos besoins. HAProxy est disponible en deux versions distinctes : Community et Enterprise.

Édition Community vs Enterprise
  • HAProxy Community : Version open-source de pointe. Elle contient les dernières fonctionnalités et innovations. Elle est idéale pour les environnements de test ou les infrastructures gérées par des équipes ayant une forte expertise technique.
  • HAProxy Enterprise (HAPEE) : Version stabilisée et optimisée pour la production. Elle inclut des modules exclusifs (WAF avancé, Dashboard global), un support technique 24/7, et des correctifs de sécurité rétroportés sur des versions LTS (Long Term Support).

2. Installation sur serveurs (Linux)

HAProxy est disponible nativement dans les dépôts de la plupart des distributions. La méthode diffère selon la famille d'OS.

Famille Debian (Debian, Ubuntu, Mint)

L'installation sur Debian ou Ubuntu utilise le gestionnaire apt. Pour bénéficier des dernières versions stables (LTS), il est recommandé d'utiliser les dépôts officiels de la communauté maintenus par Vincent Bernat.

Pour Ubuntu :
# Définir la version souhaitée (ex: 3.0, 3.1)
HAPROXY_VERSION="3.1"

sudo apt update
sudo apt install --no-install-recommends software-properties-common -y
sudo add-apt-repository ppa:vbernat/haproxy-${HAPROXY_VERSION} -y
sudo apt update
sudo apt install haproxy -y
Pour Debian :
# Définir la version souhaitée (ex: 3.0, 3.1)
HAPROXY_VERSION="3.1"

# Installation des prérequis
sudo apt update && sudo apt install curl gpg lsb-release -y
# Ajout de la clé et du dépôt officiel debian.haproxy.org
curl https://haproxy.debian.net/bernat.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/haproxy.debian.net.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/haproxy.debian.net.gpg] http://haproxy.debian.net $(lsb_release -cs)-backports-${HAPROXY_VERSION} main" | sudo tee /etc/apt/sources.list.d/haproxy.list
sudo apt update
sudo apt install haproxy -y

Famille RedHat (RHEL, CentOS, AlmaLinux, Rocky)

Sur les systèmes RedHat récents (RHEL 8/9+), on utilise dnf. Bien que HAProxy soit présent dans les dépôts AppStream, l'activation du dépôt EPEL est recommandée pour obtenir des versions plus récentes :

# Installation d'EPEL
sudo dnf install epel-release -y
# Installation de HAProxy
sudo dnf install haproxy -y
# Activation et démarrage immédiat
sudo systemctl enable --now haproxy

Pour valider l'installation et consulter les options de compilation, utilisez haproxy -v.

3. Installation via Conteneurs

La conteneurisation facilite le déploiement et l'isolation du load balancer.

Sans orchestrateur (Docker)

Lancer HAProxy avec Docker est idéal pour des besoins simples ou du test. On utilise généralement l'image officielle disponible sur Docker Hub. Il est crucial de monter le fichier de configuration localement.

# Définir la version souhaitée (ex: 3.0, 3.1, latest)
HAPROXY_VERSION="3.1"

docker run -d --name my-haproxy \
    -v /path/to/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro \
    -p 80:80 -p 443:443 \
    haproxy:${HAPROXY_VERSION}

L'argument :ro garantit que le conteneur ne peut pas modifier votre fichier de configuration d'origine.

Avec orchestrateur (Kubernetes / Swarm)

Dans un environnement orchestré comme Kubernetes, HAProxy est souvent déployé en tant que Ingress Controller. Il ne se contente pas de charger une configuration fixe, mais observe l'API Kubernetes pour mettre à jour ses routes dynamiquement.

L'installation recommandée se fait via Helm :

helm repo add haproxy-ingress https://haproxy-ingress.github.io/charts
helm install ingress-controller haproxy-ingress/haproxy-ingress

Sous Docker Swarm, on utilisera un fichier docker-compose.yml déployé en tant que stack, en s'appuyant sur le réseau overlay pour joindre les services applicatifs.

4. HAProxy Enterprise Edition (HAPEE)

HAProxy Enterprise est une version optimisée, stabilisée et supportée pour les environnements critiques (Ubuntu, Debian, RHEL, CentOS, Rocky, AlmaLinux).

Installation via le script officiel

La méthode la plus simple consiste à utiliser le script d'installation unifié. Il configure automatiquement les dépôts GPG et les sources de paquets pour votre distribution :

# Définir la version souhaitée (ex: 2.9, 3.0, 3.1)
HAPROXY_VERSION="3.1"

# Téléchargement et exécution du script d'installation officiel
curl https://www.haproxy.com/static/install_haproxy_enterprise.sh | sudo bash -s -- \
    --key YOUR_LICENSE_KEY \
    --version ${HAPROXY_VERSION}

Le script installera le paquet hapee-${HAPROXY_VERSION}-lb. Vous pouvez ensuite démarrer le service avec systemctl enable --now hapee-${HAPROXY_VERSION}-lb.

Alternative : Installation manuelle

L'installation manuelle via apt, dnf ou Docker, ... est possible. Elle nécessite la création manuelle d'un fichier de dépôt pointant vers https://www.haproxy.com/download/hapee/key/... en utilisant votre clé comme paramètre d'authentification.

5. Conclusion

Choisir la bonne stratégie.

Verdict

L'installation sur serveur (Bare metal / VM) reste la norme pour les load balancers de bordure (Edge) nécessitant des performances maximales. La conteneurisation, via les Ingress Controllers, est devenue indispensable pour la flexibilité du Cloud et des microservices.

Lien copié dans le presse-papiers !