9
Hapraoxy : Haproxy est une solution libre et performante de répartition de charge de niveau 4 (TCP) et niveau 7 (HTTP). Nous utiliserons 1 serveur Debian pour le haproxy et 2 autres serveurs Debian pour le service Web (Apache). Le paquet Apache2 a été au préalable installé sur les 2 serveurs. o Le serveur Haproxy est configuré de la façon suivante : Une carte réseau en pont (bridge) : 192.168.0.16 /24 Une carte réseau en host-only : 10.1.0.1 /24 o Le 1 er serveur Web est configuré de la façon suivante : Une carte réseau en host-only : 10.1.0.21 /24 o Le 2 ème serveur Web est configuré de la façon suivante : Une carte réseau en host-only : 10.1.0.22 /24 o Tout d’abord rendez vous sur le serveur Haproxy et si ce n’est pas encore fait, il faut mettre à jour le serveur avec la commande suivante : Ensuite on installe le paquet haproxy : Une fois l’installation terminée, il faut se rendre dans les fichiers et puis ajouter au début des fichiers la ligne suivante : ENABLED=1 Cette manipulation va permettre de pouvoir démarrer le service haproxy. Nous allons modifier le fichier de configuration avec la commande :

yanisaitaoudia.files.wordpress.com€¦ · Web viewHapraoxy : Haproxy est une solution libre et performante de répartition de charge de niveau 4 (TCP) et niveau 7 (HTTP). Nous utiliserons

  • Upload
    buimien

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Hapraoxy :

Haproxy est une solution libre et performante de répartition de charge de niveau 4 (TCP) et niveau 7 (HTTP). 

Nous utiliserons 1 serveur Debian pour le haproxy et 2 autres serveurs Debian pour le service Web (Apache). Le paquet Apache2 a été au préalable installé sur les 2 serveurs. 

o Le serveur Haproxy est configuré de la façon suivante : Une carte réseau en pont (bridge) : 192.168.0.16 /24Une carte réseau en host-only : 10.1.0.1 /24

o Le 1er serveur Web est configuré de la façon suivante :Une carte réseau en host-only : 10.1.0.21 /24

o Le 2ème serveur Web est configuré de la façon suivante :Une carte réseau en host-only : 10.1.0.22 /24

o

Tout d’abord rendez vous sur le serveur Haproxy et si ce n’est pas encore fait, il faut mettre à 

jour le serveur avec la commande suivante :  

Ensuite on installe le paquet haproxy : 

Une fois l’installation terminée, il faut se rendre dans les fichiers   et  puis ajouter au début des fichiers la ligne suivante : ENABLED=1

Cette manipulation va permettre de pouvoir démarrer le service haproxy.

Nous allons modifier le fichier de configuration avec la commande :

 nano

Allez à la dernière ligne du fichier et adapter selon votre configuration :

Je vais vous présenter brièvement les différentes commandes du fichier :

listen cluster_web bind 192.168.0.16:80: Permet de spécifier l’ip du haproxy et par laquelle nous pourrons accéder au contenu web. Dans un cas concret, il s’agira d’une Ip Publique. 

balance roundrobin : cette méthode permet de répartir équitablement la charge entre les serveurs d’un cluster.

server web1 10.1.0.21:80 check: permet de spécifier les serveurs sur lesquels va s’effectuer la répartition de charge.

Enfin la partie stats permet de configurer l’interface graphique web du haproxy accessible via l’adresse ip du haproxy : 192.168.0.16:80/stats avec admin en identifiant et en mot de passe. 

On démarre le service haproxy avec la commande : /etc/init.d/haproxy start

On ouvre un navigateur web  puis on tape l’adresse : 

 

On vous demande alors l’identifiant et le mot de passe : 

Vous devriez voir ensuite cette interface : 

Les serveurs web sont déjà configurés c’est pourquoi ils sont « UP ». On peut voir ici que la répartition de charge s’opère.

Afin de s’assurer que le serveur haproxy fonctionne, nous allons modifier la page Apache par défaut du serveur web1 : 

 

Celle du serveur web2 reste celle par défaut : 

On ouvre un navigateur et on tape l’adresse du serveur haproxy : 192.168.0.16:80

On atterrit alors sur une des deux pages des serveurs web :

 

En restant appuyé sur F5 afin d’actualiser rapidement la page, on s’aperçoit que le serveur affiche certaines fois la page par défaut du serveur web1 et d’autres fois la page par défaut du serveur web2.

Afin de réaliser un autre test, nous allons arrêter le service apache du serveur web1. Sur un terminal du serveur web1, tapez la commande suivante : /etc/init.d/apache2 stopOn vérifie sur l’interface du haproxy que le serveur est bien « down » : 

On tape l’adresse du serveur haproxy : 192.168.0.16:80 et on s’aperçoit que c’est la page du serveur web2 qui s’affiche :

On réalise ensuite l’opération inverse en relançant le service apache sur le serveur web1 et en arrêtant celui du serveur web2 : 

Et cette fois ci c’est la page du serveur web1 qui s’affiche : 

Maintenant que le serveur Haproxy et la répartition de charge sont bien fonctionnels, nous allons permettre aux serveurs web1 et web2 de pouvoir accéder à Internet grâce à du NATting. 

Sur le serveur haproxy, il faut créer un fichier dans lequel nous allons mettre nos règles Iptables, 

c’est-à-dire des règles agissant sur le pare-feu : nano

Configurez ensuite le fichier en adaptant selon votre configuration et notamment le nom de la carte réseau concernée (ici ens33) :

On rend le fichier exécutable avec les commandes suivantes : 

On démarre le script avec : 

Erreurs rencontrées suite à la commande d’exécution du script :

En exécutant le script, j’ai rencontré les incidents suivants : 

La première erreur de permission a été corrigée en installant le paquet « sudo » qui n’était pas 

installé de base sur ma machine : 

La deuxième erreur provient de la commande « gt » qui n’est pas reconnue par le terminal. Pour y remédier, il faut retourner sur le fichier firewall et modifier la ligne :

par

On exécute le script : 

On effectue un test en se rendant sur le serveur web1 et en effectuant un ping vers l’Internet : 

Le ping est bien fonctionnel.