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)
Créer un fichier
Dockerfilepour le serveurNGINX(modifiez le fichier index.html de chaque serveur afin de pouvoir les identifier)Créer un fichier
Dockerfilepour leloadbalancerNGINXCréer un fichier
docker-compose.ymlqui lie le tout
Rappel : Configuration de Nginx comme load balancer
Copy
nano /etc/nginx/conf.d/load-balancer.confDans 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 fichierdocker-compose.ymlqui 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 :
Construisez et démarrez les conteneurs :
Accédez au site via le load balancer :
Utilisez un navigateur ou
curlpour vérifier que la charge est bien répartie entrebackend1etbackend2:Vous devriez voir alterner les réponses :
Vérifiez les logs du load balancer pour confirmer la répartition :
Arrêtez le conteneur
backend2:Accédez à nouveau au site via le load balancer :
Utilisez
curlou un navigateur :Vous ne devriez plus voir que le contenu de
backend1:
Redémarrez
backend2pour rétablir la redondance :Vérifiez que la répartition est de nouveau active :
Last updated