Répartition de Charge avec NGINX

Le but de l'exercice est de mettre en place un load balancer. Un load balancer est, comme un reverse proxy, le point d'entrée des connexions au service web. C'est lui qui va décider quel serveur (backend) utiliser réellement. Si l'un des serveurs tombe, il sera capable d'utiliser les autres de manière transparente.

A l'aide de Docker et de docker-compose , créer une redondance avec 2 serveurs NGINX grâce à un 3ème serveur NGINX (cf répartition de charge avec NGINX)

  1. Créer un fichier Dockerfile pour le serveur NGINX (modifiez le fichier index.html de chaque serveur afin de pouvoir les identifier)

  2. Créer un fichier Dockerfile pour le loadbalancer NGINX

  3. Créer un fichier docker-compose.yml qui lie le tout

Rappel : Configuration de Nginx comme load balancer

Copy

nano /etc/nginx/conf.d/load-balancer.conf

Dans ce fichier de configuration, il va falloir configurer deux parties, « upstream » et « server », voici un fichier comme exemple :

A réaliser :

Mettre en place un load balancing basique en HTTP (pas de HTTPS). Quand on demande le site, une fois sur trois on obtient Site 1, deux fois sur trois on obtient Site 2. Pour tester le load balancing, on identifie nos serveurs web avec avec un fichier index.html différent

Livrable attendu : les dockefiles (serveur front, serveur 1 et server 2) et le fichier docker-compose.yml qui lie le tout décrivant votre configuration de Docker Compose pour faire fonctionner votre infrastructure.


Structure des fichiers


index.html (Backend 1) :

index.html (Backend 2) :

Dockerfile-backend1 :

Dockerfile-backend2 :

Dockerfile-loadbalancer :

load-balancer.conf :

docker-compose.yml :


  1. Construisez et démarrez les conteneurs :

  2. Accédez au site via le load balancer :

    • Utilisez un navigateur ou curl pour vérifier que la charge est bien répartie entre backend1 et backend2 :

    • Vous devriez voir alterner les réponses :

  3. Vérifiez les logs du load balancer pour confirmer la répartition :


  1. Arrêtez le conteneur backend2 :

  2. Accédez à nouveau au site via le load balancer :

    • Utilisez curl ou un navigateur :

    • Vous ne devriez plus voir que le contenu de backend1 :

  3. Redémarrez backend2 pour rétablir la redondance :

  4. Vérifiez que la répartition est de nouveau active :

Last updated