Caractéristiques-clefs
- Home URL
- http://www.haproxy.org/#down
- Source URL
- https://github.com/haproxy/haproxy/
- Licence
- GPL-2.0-only
- Développeur(s)
- HAProxy Technologies
Description
Caractéristiques et fonctionnalités
HAProxy est un répartiteur de charge (load balancer) libre et open source, conçu pour la haute disponibilité et la scalabilité. Il est capable de gérer un grand nombre de connexions simultanées et de répartir la charge de travail entre plusieurs serveurs.
Il offre une variété de fonctionnalités, notamment :
- La répartition de charge basée sur des algorithmes tels que round-robin, leastconn, ip-hash, etc.
- La surveillance des serveurs et la détection des pannes pour rediriger les requêtes vers des serveurs opérationnels.
- La prise en charge de plusieurs protocoles, notamment HTTP, HTTPS, FTP, SMTP, MySQL, PostgreSQL, etc.
- La possibilité de mettre en place des ACL (Access Control Lists) pour gérer l'accès aux ressources.
- La collecte de statistiques et la visualisation de la charge système.
- La possibilité d'agir en tant que reverse proxy, pour cacher l'adresse IP des serveurs_back-end.
Architecture
HAProxy peut être utilisé en mode solo, mais il est souvent utilisé dans une architecture plus globale, telle qu'une architecture à trois couches :
- Les clients (browsers, applications mobiles, etc.) envoient des requêtes à une adresse IP publique.
- HAProxy répartit ces requêtes entre plusieurs serveurs (cluster), en fonction de leur disponibilité et de leur charge de travail.
- Les serveurs traitent les requêtes et renvoient les réponses à HAProxy.
- HAProxy renvoie les réponses aux clients.
Installation et configuration
HAProxy peut être installé sur la plupart des systèmes d'exploitation, notamment Linux, Windows et macOS. La configuration de HAProxy peut être réalisée en modifiant le fichier de configuration /etc/haproxy/haproxy.cfg
.
Dans ce fichier de configuration, il est possible de définir les différents éléments suivants :
- Les interfaces réseau à écouter.
- Les serveurs cibles.
- Les algorithmes de répartition de charge.
- Les règles de sécurité et d'accès (ACL).
Commandes de gestion
HAProxy fournit un certain nombre de commandes de gestion qui permettent de contrôler son fonctionnement en temps réel. Les principales commandes sont :
haproxy -v
: affiche la version de HAProxy.haproxy -c
: vérifie la configuration de HAProxy.haproxy -f
: spécifie le fichier de configuration à utiliser.haproxy -p
: spécifie le processus PID à utiliser.
Utilisation de la CLI
La CLI (Command Line Interface) de HAProxy peut être utilisée pour exécuter des commandes de gestion et de surveillance. Il est possible de se connecter à la CLI à l'aide de la commande haproxy stats socket /var/run/haproxy.sock
.
Paramètres de configuration
Les paramètres de configuration de HAProxy peuvent être définis dans le fichier de configuration /etc/haproxy/haproxy.cfg
. Les paramètres les plus couramment utilisés sont :
maxconn
: spécifie le nombre maximum de connexions simultanées.timeout client
: spécifie le délai d'attente pour les requêtes clientes.timeout server
: spécifie le délai d'attente pour les réponses des serveurs.balance
: spécifie l'algorithme de répartition de charge.