Développée par le français Willy Tarreau en 2002, HAProxy est une solution libre, fiable et très performante de répartition de charge de niveau 4 (TCP) et 7 (HTTP).
Elle est particulièrement adaptée aux sites web et base de donnée fortement chargés qui nécessitent de la disponibilité.
Dans ce tutoriel, nous allons mettre en place la solution HAProxy devant un cluster MariaDB/Galera composé de trois serveurs
Dans cette configuration tous les requêtes seront envoyées sur 192.168.1.1 qui les transmettra sur les 3 nœuds MariaDB. Pour l'installation d'un cluster MariaDB Galera.
Dans notre exemple nous utilisons les machines suivantes :
Pour la partie base de donnée, veuillez suivre la procédure suivante : MariaDB Cluster
Voici la topologie que nous allons mettre en place:
HAProxy est disponible dans les dépôts de logiciels de la plupart des distributions Linux. Vous pouvez l'installer en utilisant le gestionnaire de paquets approprié.
# apt-get install haproxy
Une fois que HAProxy est installé, il faut le configurer.
[root@srv ]# nano /etc/haproxy/haproxy.cfg ... # Load Balancing stats frontend stats-front bind *:8282 mode http default_backend stats-back backend stats-back mode http option httpchk balance roundrobin stats uri / stats auth admin:secret stats refresh 10s # Load Balancing for Galera Cluster frontend galera_cluster_frontend bind *:3306 mode tcp option tcplog default_backend galera_cluster_backend # Galera Cluster Backend configuration backend galera_cluster_backend mode tcp option tcpka balance leastconn server node1 192.168.1.2:3306 check weight 1 server node2 192.168.1.3:3306 check weight 1 server node3 192.168.1.4:3306 check weight 1
On redémarre le service haproxy
[root@srv ]# systemctl restart haproxy
On pourra se connecter à l'interface WEB pour visualiser l'état de la plateforme : http://192.168.1.1:8282/
Lancer une connexion MySQL via sur le serveur HAProxy pour tester le load-balancing
[root@srv ]# mysql -h <server_haproxy> -u <user> -p<password>