Maison >développement back-end >tutoriel php >Comment utiliser le serveur proxy Nginx dans Docker pour équilibrer la charge de plusieurs serveurs Web ?

Comment utiliser le serveur proxy Nginx dans Docker pour équilibrer la charge de plusieurs serveurs Web ?

WBOY
WBOYoriginal
2023-09-05 12:30:46893parcourir

Comment utiliser le serveur proxy Nginx dans Docker pour équilibrer la charge de plusieurs serveurs Web ?

Comment utiliser le serveur proxy Nginx dans Docker pour réaliser l'équilibrage de charge de plusieurs serveurs Web ?

Résumé :
Dans l'architecture des applications Web modernes, l'équilibrage de charge est un sujet important. En répartissant le trafic sur plusieurs serveurs, vous pouvez améliorer la disponibilité, les performances et l'évolutivité du système. Cet article explique comment utiliser le serveur proxy Docker et Nginx pour réaliser l'équilibrage de charge de plusieurs serveurs Web.

  1. Préparation
    Tout d'abord, nous devons installer Docker et Nginx. Vous pouvez trouver le guide d'installation correspondant sur le site officiel.
  2. Créer plusieurs serveurs Web
    Avant de mettre en œuvre l'équilibrage de charge, nous devons d'abord créer plusieurs serveurs Web. Docker peut être utilisé pour créer plusieurs instances de serveur Web. Ce qui suit est un exemple de fichier Docker pour créer une image de serveur Web simple.
FROM nginx:latest
COPY index.html /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80

Ici, nous utilisons l'image officielle fournie par Nginx et copions les fichiers index.html et nginx.conf aux emplacements correspondants. Dans index.html, vous pouvez placer n'importe quel contenu Web que vous souhaitez afficher. Dans nginx.conf, vous pouvez configurer les paramètres liés à Nginx.

  1. Configurer le serveur proxy Nginx
    Ensuite, nous devons configurer le serveur proxy Nginx pour réaliser l'équilibrage de charge. Créez un fichier appelé nginx.conf et ajoutez le contenu suivant au fichier.
http {
  upstream backend {
    server web1:80;
    server web2:80;
  }
  server {
    listen 80;
    location / {
      proxy_pass http://backend;
      proxy_set_header Host $host;
    }
  }
}

Ici, nous définissons un groupe de serveurs en amont appelé backend, qui contient les adresses des deux serveurs web. Dans le bloc serveur, nous lions le port 80 au serveur proxy Nginx et le trafic proxy au groupe de serveurs backend. La directive proxy_set_header est utilisée pour définir l'en-tête Host de la requête sur l'adresse du serveur.

  1. Exécuter plusieurs serveurs Web et serveur proxy Nginx
    Après avoir terminé la configuration, nous pouvons utiliser Docker pour exécuter plusieurs instances de serveur Web et une instance de serveur proxy Nginx.

Tout d'abord, nous devons créer l'image du serveur Web. Dans le répertoire où se trouve l'image, exécutez la commande suivante.

docker build -t web-server .

Ensuite, nous pouvons exécuter plusieurs instances de serveur Web. Exécutez la commande suivante deux fois pour créer deux instances.

docker run -d --name web1 web-server
docker run -d --name web2 web-server

Ensuite, nous devons créer une instance de serveur proxy Nginx. Exécutez la commande suivante.

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

Ici, nous avons utilisé le paramètre --link pour connecter le serveur proxy Nginx aux deux instances du serveur Web.

  1. Test de l'équilibrage de charge
    Nous pouvons désormais utiliser n'importe quel navigateur Web pour tester l'équilibrage de charge. Entrez simplement l'adresse du serveur proxy Nginx et le trafic sera distribué aux deux instances du serveur Web.

En regardant les logs du conteneur du serveur web, nous pouvons voir comment les requêtes sont distribuées aux différentes instances.

docker logs web1
docker logs web2

Conclusion :
En utilisant Docker et le serveur proxy Nginx, nous pouvons facilement réaliser l'équilibrage de charge de plusieurs serveurs Web. Cette méthode est non seulement simple et efficace, mais également très flexible et évolutive. J'espère que cet article pourra vous être utile, merci d'avoir lu !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn