ON a vu comment mettre Nginx en reverse proxy, nous aller plus loin en configurant un load balancer
Contenu
Qu’est ce qu’un load balancer?
Un load balancer permet de répartir la charge d’un site web sur plusieurs serveur qui tournent indépendamment. Un serveur web qui reçoit beaucoup de visite aura tendance à ralentir, ce n’est pas la résolution de la ressource qui est lente, car l’opération demande peu de ressource, mais le travail du serveur pour calculer la page web. D’où l’idée de monter plusieurs serveurs et de monter un reverse proxy qui va être le premier à intercepter la requête et à la rediriger vers un des serveurs.
Installation de Nginx
sudo apt install -y nginx
Fichier de configuration de Nginx
Le fichier de configuration se trouve dans /etc/nginx/nginx.conf
server {
listen 80;
server_name myserver;
location /static {
root /var/www/myserver;
}
location / {
proxy_pass http://localhost:8000;
proxy_http_version. 1.1;
proxy_set_header X-Forwarder-Host $server_name;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Modification du fichier de configuration pour indiquer les 3 hôtes
log_format upstreamlog '$server_name to: $upstream_addr [$request] '
'upstream_response_time $upstream_response_time'
'msec $msec
upstream serveurs {
server http://localhost:8000;
server http://localhost:8001;
server http://localhost:8002;
}
server {
listen 80;
server_name myserver;
access_log /var/log/nginx/access.log upstreamlog;
location /static {
root /var/www/myserver;
}
location / {
proxy_pass http://serveurs;
proxy_http_version 1.1;
proxy_set_header X-Forwarder-Host $server_name;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Dry run ou lancement d’essai pour vérifier que le script n’est pas en erreur
sudo nginx -t // pas d'erreur normalement sudo systemctl reload nginx sudo tail -f /var/www/nginx/access_log
Maintenant dans votre navigateur, allez à l’adresse http://myserver, et rechargez plusieurs fois. Regardez les logs, on doit voir les 3 port du localhost utilisés.
La stratégie round robin
Avec cette stratégie, le reverse proxy distribue à tout le monde équitablement, chacun son tour.
On va faire une application NodeJS qu’on va lancer trois fois avec des ports différents