Qu’est-ce que HAProxy?

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

  • Un serveur de répartition de charge avec HAProxy
  • Trois serveurs de base de donnée - MariaDB / Galera

Prérequis

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 :

  • 192.168.1.1 haproxy.oowy.lan : HAProxy
  • 192.168.1.2 galera01.oowy.lan : MariaDB / Galera
  • 192.168.1.3 galera02.oowy.lan : MariaDB / Galera
  • 192.168.1.4 galera03.oowy.lan : MariaDB / Galera

Pour la partie base de donnée, veuillez suivre la procédure suivante : MariaDB Cluster

Architecture

Voici la topologie que nous allons mettre en place:

Installation

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

Configuration

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/

Tester l'accès via HAProxy

Lancer une connexion MySQL via sur le serveur HAProxy pour tester le load-balancing

[root@srv ]# mysql -h <server_haproxy> -u <user> -p<password>

Annexe

Ce site web utilise des cookies. En utilisant le site Web, vous acceptez le stockage de cookies sur votre ordinateur. Vous reconnaissez également que vous avez lu et compris notre politique de confidentialité. Si vous n'êtes pas d'accord, quittez le site.En savoir plus