Position actuelle: Accueil> Derniers articles> Comment utiliser Nginx pour réaliser l'équilibrage de chargement du serveur Web dans Docker

Comment utiliser Nginx pour réaliser l'équilibrage de chargement du serveur Web dans Docker

M66 2025-06-21

Comment utiliser Nginx pour réaliser l'équilibrage de chargement du serveur Web dans Docker

Dans les architectures d'applications Web modernes, l'équilibrage des charges est un moyen important d'améliorer la disponibilité, les performances et l'évolutivité du système. En distribuant du trafic vers plusieurs serveurs Web, il peut disperser efficacement la pression et s'assurer que le site Web peut toujours fonctionner de manière stable sous des visites élevées. Cet article présentera en détail comment utiliser les serveurs proxy Nginx pour configurer l'équilibrage de charge de plusieurs serveurs Web dans un environnement Docker.

Préparation

Tout d'abord, nous devons installer Docker et Nginx. Pour les méthodes d'installation, veuillez vous référer aux documents officiels de Docker et Nginx et choisissez les étapes d'installation appropriées en fonction de votre système d'exploitation.

Créer plusieurs instances de serveur Web

Avant d'implémenter l'équilibrage de charge, vous devez d'abord créer plusieurs instances de serveur Web. Nous utiliserons Docker pour déployer plusieurs serveurs Web. Voici un simple dockerfile pour créer des images de serveur Web.

De Nginx: dernier
Copy index.html / usr / share / nginx / html /
Copier nginx.conf /etc/nginx/nginx.conf
Exposer 80

Dans ce dockerfile, nous créons une image de serveur Web basé sur l'image Nginx officielle, en copie les fichiers index.html et nginx.conf dans le conteneur. Le contenu de la page Web que vous devez afficher peut être placé dans index.html. nginx.conf est utilisé pour configurer les paramètres pertinents du service Nginx.

Configurer le serveur proxy Nginx

Ensuite, nous devons configurer un serveur proxy Nginx pour obtenir l'équilibrage de charge. Créez un fichier de configuration appelé nginx.conf et ajoutez ce qui suit:

http {
  Backend en amont {
    serveur web1: 80;
    serveur web2: 80;
  }

  serveur {
    Écoutez 80;

    emplacement / {
      proxy_pass http: // backend;
      proxy_set_header host $ host;
    }
  }
}

Dans cette configuration, nous définissons un groupe de serveurs en amont appelé backend, qui contient deux serveurs Web (Web1 et Web2). Dans le bloc de serveur, nous lions le port 80 du serveur proxy Nginx et faisons passer le trafic vers le groupe backend via la directive Proxy_Pass. proxy_set_header est utilisé pour s'assurer que l'en-tête hôte demandé est passé correctement.

Démarrer le serveur Web et le serveur proxy Nginx

Après avoir terminé la configuration NGINX, nous pouvons démarrer le serveur Web et le serveur proxy NGINX via Docker. Créez d'abord une image de serveur Web et exécutez la commande suivante:

Docker Build -T serveur Web.

Exécutez ensuite plusieurs instances de serveur Web. Vous pouvez démarrer deux serveurs Web en exécutant la commande suivante:

Docker Run -d - Name Web1 Web-Server
Docker Run -d - Name Web2 Web-Server

Ensuite, démarrez l'instance Nginx Proxy Server et exécutez la commande suivante:

docker run -d -p 80:80 --name nginx-proxy --link web1 - link web2 nginx

Ici, le paramètre - link connecte le serveur proxy Nginx à deux instances de serveur Web. De cette façon, Nginx peut distribuer uniformément le trafic vers le serveur Web.

Équilibrage de la charge de test

Vous pouvez maintenant accéder à l'adresse IP ou au nom de domaine du serveur proxy NGINX via votre navigateur pour tester la fonction d'équilibrage de charge. Chaque demande est transmise par le serveur proxy NGINX vers une autre instance de serveur Web, partageant la charge.

Vous pouvez également vérifier les journaux du conteneur du serveur Web pour confirmer si les demandes sont également allouées à plusieurs instances:

docker journaux web1
docker journaux web2

en conclusion

En combinant les serveurs proxy Docker et Nginx, nous pouvons facilement réaliser l'équilibrage de charge de plusieurs serveurs Web. Cette méthode est non seulement simple à utiliser, mais a également une grande flexibilité et une évolutivité, ce qui peut répondre aux besoins de la plupart des applications Web. J'espère que le contenu de cet article vous sera utile!