NOUVEAU ! VPS basé sur EPYC + NVMe

Se connecter
+1 (855) 311-1555

Comment équilibrer la charge d'un site web avec NGINX et l'hébergement VPS multi-localisation

5 min de lecture - 15 mai 2025

hero image

Table of contents

  • Comment équilibrer la charge d'un site web avec NGINX et un VPS multi-site
  • Étape 1 : Déployer des serveurs VPS dans différentes régions
  • Étape 2 : Configurer un serveur virtuel pour servir d'équilibreur de charge
  • Étape 3 : S'attaquer au point de défaillance unique
  • Le problème
  • Solutions
  • Option 1 : Haute disponibilité avec une IP flottante
  • Option 2 : Équilibrage de charge au niveau DNS
  • Option 3 : IP Anycast (avancée)
  • Étape 4 : Contrôles de santé et logique de basculement
  • Étape 5 : Faire pointer votre domaine vers l'équilibreur de charge
  • Optionnel : Routage tenant compte de la géolocalisation
  • \+---------------------+
  • Réflexions finales

Share

Distribuer le trafic d'un site web sur des serveurs VPS situés à plusieurs endroits à l'aide de NGINX. Apprenez à configurer l'équilibrage de la charge, à éviter les points de défaillance uniques et à améliorer les performances.

Comment équilibrer la charge d'un site web avec NGINX et un VPS multi-site

L'équilibrage de la charge de votre site web entre plusieurs instances VPS situées dans des lieux géographiques différents peut améliorer les performances, réduire la latence et renforcer la redondance. En utilisant NGINX comme proxy inverse, vous pouvez distribuer le trafic entre des serveurs backend, chacun hébergeant une copie de votre site web ou de votre application.

Dans ce guide, nous allons parcourir le processus de configuration, mettre en avant les meilleures pratiques et aborder le piège courant de l'introduction d'un point de défaillance unique avec le reverse proxy, ainsi que les solutions pour l'atténuer.


Étape 1 : Déployer des serveurs VPS dans différentes régions

Commencez par déployer des instances VPS sur plusieurs sites géographiques - par exemple, une à New York, une à Francfort et une à Singapour. Chaque serveur privé virtuel doit fonctionner :

  • une copie de votre site web ou de votre application
  • NGINX (s'il est également utilisé comme serveur web local)
  • Un accès SSH pour l'installation et la maintenance

Veillez à ce que le contenu et les configurations soient cohérents sur tous les serveurs.


Étape 2 : Configurer un serveur virtuel pour servir d'équilibreur de charge

Choisissez un serveur virtuel qui servira de proxy inverse et d'équilibreur de charge, ou provisionnez-en un nouveau à cette fin. Ce serveur acheminera le trafic vers les nœuds VPS de backend.

Utilisez une configuration de proxy inverse NGINX de base qui définit un groupe en amont et qui achemine les requêtes entrantes vers vos nœuds backend.

Voici un exemple de configuration NGINX pour votre proxy

http { upstream backend_servers { server vps1.example.com ; server vps2.example.com ; server vps3.example.com ; } server { listen 80 ; location / { proxy_pass http://backend_servers ; proxy_set_header Host $host ; proxy_set_header X-Real-IP $remote_addr ; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ; } } }

Étape 3 : S'attaquer au point de défaillance unique

Le problème

Le serveur virtuel hébergeant le proxy inverse NGINX devient un point de défaillance unique. Si ce serveur tombe en panne, l'ensemble de votre site devient indisponible, même si vos serveurs dorsaux fonctionnent toujours.

Solutions

Option 1 : Haute disponibilité avec une IP flottante

Utilisez des outils comme Keepalived ou Pacemaker avec VRRP pour créer une IP flottante entre deux ou plusieurs nœuds NGINX. Si l'un d'eux tombe en panne, l'IP bascule automatiquement sur l'autre.

Option 2 : Équilibrage de charge au niveau DNS

Exécutez plusieurs nœuds d'équilibrage de charge NGINX et utilisez un DNS ou un GeoDNS round-robin (par exemple AWS Route 53, Cloudflare Load Balancing) pour distribuer le trafic entre eux.

Option 3 : IP Anycast (avancée)

Annoncer la même adresse IP à partir de plusieurs régions géographiques à l'aide de BGP et d'Anycast. Le trafic est automatiquement acheminé vers le nœud le plus proche en fonction de l'emplacement de l'utilisateur.

Conseil : La combinaison du routage géographique basé sur le DNS avec des proxys NGINX hautement disponibles offre la meilleure couverture et la meilleure résilience.


Étape 4 : Contrôles de santé et logique de basculement

Bien que NGINX Open Source ne supporte pas les contrôles de santé actifs de manière native, il arrêtera le routage vers un nœud défaillant après des erreurs de connexion. Pour des contrôles de santé plus avancés :

  • Utilisez NGINX Plus
  • Ou construisez une surveillance externe et une logique de basculement avec cron + curl + rechargements de configuration.

Étape 5 : Faire pointer votre domaine vers l'équilibreur de charge

Mettez à jour vos enregistrements DNS pour qu'ils pointent vers l'adresse IP de votre proxy inverse NGINX (ou l'IP flottante si vous utilisez HA). Si vous utilisez plusieurs proxys, configurez votre fournisseur DNS pour une résolution équilibrée en charge ou géo-responsable.


Optionnel : Routage tenant compte de la géolocalisation

NGINX lui-même ne gère pas le routage basé sur la géolocalisation, mais vous pouvez le coupler avec :

  • GeoDNS: Utiliser un fournisseur DNS qui achemine les utilisateurs vers le serveur le plus proche.
  • Anycast IPs: Distribuer la même IP à partir de plusieurs centres de données, ce qui permet d'optimiser le routage au niveau mondial.

``` Requête utilisateur | v +---------------------+ | GeoDNS / Load-aware | | Couche de routage DNS | +---------------------+ | v +----------------------+ | Proxy NGINX régional | | (HA ou Anycast IP) | +----------------------+ | v +---------------------+ | Nœuds de backend VPS | +---------------------+ | Nœuds de backend NGINX régional | (HA ou Anycast IP) | +----------------------+ | v +---------------------+ | Nœuds de back-end VPS |

+---------------------+

Réflexions finales

L'utilisation de NGINX pour équilibrer la charge sur plusieurs serveurs VPS vous permet d'évoluer globalement et de réduire la latence. Mais n'oubliez pas que le reverse proxy doit être hautement disponible, sinon il devient un handicap.

Pour éliminer les points de défaillance uniques, envisagez une distribution de charge basée sur le DNS, des IP flottantes ou un réseau Anycast. Avec une planification minutieuse, votre configuration VPS multi-site peut fournir des performances rapides et tolérantes aux pannes à grande échelle.

Ce guide n'est approprié que pour une interface web, et ne couvre pas les connexions à une base de données, ni les problèmes et solutions de distribution pour une haute disponibilité. Nous aborderons ce sujet dans un article ultérieur...

Blog

À l'honneur cette semaine

Plus d'articles
Comment équilibrer la charge d'un site web avec NGINX et l'hébergement VPS multi-localisation

Comment équilibrer la charge d'un site web avec NGINX et l'hébergement VPS multi-localisation

Distribuer le trafic d'un site web sur des serveurs VPS situés à plusieurs endroits à l'aide de NGINX. Apprenez à configurer l'équilibrage de la charge, à éviter les points de défaillance uniques et à améliorer les performances.

5 min de lecture - 15 mai 2025

Un guide pour l'hébergement de l'inférence de l'IA sur les serveurs dédiés et les VPS

5 min de lecture - 13 mai 2025

Plus d'articles