Microsoft Word - Gestion de la répartition de charge sur des serveurs WEB avec HAProxy.docx
BTS SIO
Services Informatiques aux Organisations
Option
SISR
Session
2018
Nom, Prénom de l’élève
CAMARA Laye-Abdoulnaby
Activité en formation N°3
3
NATURE DE L'ACTIVITE
Gestion de la répartition de charge sur des serveurs WEB avec HAProxy.
Contexte
Réalisation d’un TP
Objectifs
L’objectif et de créer un serveur HAproxy, pour la répartition de charge
Lieu de réalisation
Salle de cours
DESCRIPTION DE LA SOLUTION RETENUE
Conditions initiales
Le serveur HAproxy n’est pas configuré.
Conditions finales
Le serveur HAProxy est configuré.
Outils utilisés
Virtual box
CONDITIONS DE REALISATION
Matériels
3 VM
Logiciels
Haproxy
Durée
1h
Contraintes
COMPETENCES MISES EN OEUVRE POUR CETTE ACTIVITE PROFESSIONNELLE
A1.1.1
A1.2.4
A3.2.1
Analyse du cahier des charges d'un service à produire
Détermination des tests nécessaires à la validation d'un service, Installation et configuration d'éléments d'infrastructure
DEROULEMENT DE L'ACTIVITE
1. Serveur HAProxy sous GNU/Debian
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 fortement chargés qui nécessitent de la disponibilité.
HAProxy peut être utilisé comme un load-balancer, un proxy filtrant, ou les deux. Pour mettre en place ce serveur, nous utiliserons trois serveurs :
· Un serveur de répartition de charge avec HaProxy.
· Deux serveurs web avec Apache et PHP
Voici la topologie que nous allons mettre en place :
Dans Virtualbox, le réseau en 192.168.2.XXX est le réseau local (mode pont) et pour le réseau en
10.1.0.XXX la configuration de la carte est en mode Réseau interne.
Prérequis :
Les serveurs sont configurés de la façon suivante : Serveur de répartition de charge
· hostname: HAProxy (Debian 8)
· Deux carte réseaux
· eth0: 192.168.2.100
· eth1: 10.1.0.1
Serveurs Web
· Serveur web1 (Debian 8 avec apache 2)
· hostname: web1
· eth0: 10.1.0.21
· Serveur web2 (Debian 8 avec apache 2)
· hostname: web2
· eth0: 10.1.0.22
2. Installation du Load Balancer
Une fois les cartes réseau du serveur de répartition de charge, configurées correctement, nous pouvons installer et configurer HaProxy.
Config IP du serveur :
Installation d’HAproxy :
On tape : apt-get install haproxy
Une fois l’installation terminée, nous devons mettre la valeur ENABLED=0 à ENABLED=1 dans les fichiers /etc/default/haproxy et /etc/init.d/haproxy (ceci, afin de pouvoir lancer ou arrêter le service).
Nous pouvons faire avec les commandes suivantes :
3. Configuration de HaProxy
La configuration du HaProxy se fait dans le fichier de configuration : /etc/haproxy/haproxy.cfg.
· listen cluster_web 192.168.2.100:80 : Cette directive permet de spécifier sur quelle adresse IP HaProxy va fonctionner. Nous pourrons accéder au contenu web depuis cette adresse IP.
· mode http : permet de spécifier que le balancement de charge est utilisé pour du contenu web http, dans le cas contraire on peut utiliser le mode tcp (pour du myql par exemple ; …)
· balance roundrobin : permet de spécifier l’algorithme de répartition de charge. Il en existe plusieurs
· RoundRobin : La méthode Round-robin est une répartition équitable de la charge entre les serveurs d’un cluster. Chaque serveur traite le même nombre de requêtes, mais cela nécessite d’avoir des serveurs homogènes en termes de capacité de traitement.
· server web1 10.1.0.21:80 check et server web2 10.1.0.22:80 check: permet de déclarer les différents serveurs web qui vont être utilisé pour la répartition de charge
· Enfin stats, permet de configurer la page de statistiques de HaProxy, dans cette configuration, la page de statistiques sera disponible via l’adresse suivante http://192.168.2.100/stats avec les identifiants admin/admin.
Ensuite nous enregistrons les modifications puis on quitte. Pour démarrer le serveur, on tape : /etc/init.d/haproxy start
Pour vérifier que le serveur fonctionne, on tape : service –status-all
Haproxy doit apparaitre comme active (avec un +)
4. Configuration des serveurs WEB
Nous avons donc installé apache 2 sur les deux serveurs, il va donc falloir configurer les serveurs pour qu’ils utilise le proxy en tant que passerelle.
On va donc dans la configuration des interfaces du serveur web1
On tape : nano /etc/network/interfaces
On va donc dans la configuration des interfaces du serveur web1
On tape : nano /etc/network/interfaces
On remplit la gateway avec l’adresse locale du serveur HAProxy
Une fois que c’est fini on va aller modifier le fichier index.html des serveurs web1 et web2 que l’on remplit de la façon suivant, en fonction des postes.
Pour modifier le fichier, On tape : cd /var/www/html. > nano index.html
5. Test du HAProxy
A partir d’une machine connectée sur le réseau public on va se connecter à l’adresse du HAProxy :
On est tombé encore sur le WEB1 en actualisant plusieurs fois la page.
On va ensuite tester la page de stats en tapant dans le navigateur : 192.168.2.100/stats
Nous allons simuler la panne d’une serveur WEB1.
Pour ce faire on va simplement éteindre le serveur WEB1
EVOLUTION POSSIBLE
On voit que le serveur WEB1 apparait bien hors ligne, et maintenant si on va juste sur l’adresse web, on aura que la page du serveur WEB2 :
Il est possible d’utiliser HeartBeat pour la supervision de notre serveur HAproxy.