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 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.
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.
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.
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.
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!