Maison  >  Article  >  développement back-end  >  Comment implémenter l'équilibrage de charge des services Web dans les conteneurs Docker via le serveur proxy Nginx ?

Comment implémenter l'équilibrage de charge des services Web dans les conteneurs Docker via le serveur proxy Nginx ?

PHPz
PHPzoriginal
2023-09-05 17:07:441439parcourir

Comment implémenter léquilibrage de charge des services Web dans les conteneurs Docker via le serveur proxy Nginx ?

Comment implémenter l'équilibrage de charge des services Web dans les conteneurs Docker via le serveur proxy Nginx ?

Dans les applications Internet modernes, l'équilibrage de charge est une considération importante. Il peut nous aider à répartir et à utiliser les ressources entre plusieurs serveurs et à améliorer la disponibilité du système et la capacité de charge. Les services Web exécutés dans des conteneurs Docker peuvent également être équilibrés en charge via le serveur proxy Nginx. Cet article explique comment implémenter l'équilibrage de charge des services Web dans les conteneurs Docker via le serveur proxy Nginx.

Tout d'abord, nous devons configurer un environnement de conteneur Docker pour exécuter notre service Web. Dans cet exemple, nous utiliserons deux conteneurs pour simuler une situation d'équilibrage de charge.

  1. Installer Docker

Pour exécuter les conteneurs Docker, nous devons d'abord installer Docker. Docker peut être installé via les commandes suivantes :

sudo apt-get update
sudo apt-get install docker.io
  1. Créer deux conteneurs de services Web

Nous pouvons utiliser des images Docker pour créer des conteneurs de services Web. Ici, nous utilisons une simple image Nginx comme exemple.

docker run -d -p 8081:80 --name=web1 nginx
docker run -d -p 8082:80 --name=web2 nginx

La commande ci-dessus créera deux conteneurs, mappés respectivement aux ports locaux 8081 et 8082, et nommés web1 et web2.

  1. Configurer le serveur proxy Nginx

Dans notre solution d'équilibrage de charge, Nginx agira comme un serveur proxy et transmettra les requêtes des clients au conteneur de service Web back-end. Configurons Nginx maintenant.

Tout d'abord, installez Nginx :

sudo apt-get install nginx

Ensuite, éditez le fichier de configuration Nginx /etc/nginx/nginx.conf : /etc/nginx/nginx.conf

user nginx;
worker_processes auto;
http {
    ...
    upstream backend {
        server 127.0.0.1:8081;
        server 127.0.0.1:8082;
    }
    ...
    server {
        listen 80;
        server_name example.com;
        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    ...
}

在上述配置中,我们使用upstream指令定义了两个后端服务器:127.0.0.1:8081和127.0.0.1:8082。然后,在server指令中,我们使用proxy_pass指令将请求转发到后端服务器,并通过proxy_set_header指令设置了一些请求头。

  1. 重启Nginx服务

完成Nginx配置后,需要重启Nginx服务才能使配置生效。

sudo systemctl restart nginx
  1. 测试负载均衡

现在我们可以通过浏览器访问Nginx代理服务器,并观察负载均衡的效果。

在浏览器中输入http://example.comrrreee

Dans la configuration ci-dessus, nous utilisons la directive en amont pour définir deux post Serveurs finaux : 127.0.0.1:8081 et 127.0.0.1:8082. Ensuite, dans la directive serveur, nous transmettons la requête au serveur backend à l'aide de la directive proxy_pass et définissons certains en-têtes de requête via la directive proxy_set_header.

    Redémarrez le service Nginx

    Après avoir terminé la configuration de Nginx, vous devez redémarrer le service Nginx pour que la configuration prenne effet.

    rrreee
      🎜Test de l'équilibrage de charge🎜🎜🎜Nous pouvons désormais accéder au serveur proxy Nginx via le navigateur et observer l'effet de l'équilibrage de charge. 🎜🎜Entrez http://example.com dans le navigateur et actualisez la page plusieurs fois. Vous constaterez que les demandes seront transmises de manière égale aux deux conteneurs de services Web dans le backend. 🎜🎜À ce stade, nous avons implémenté avec succès l'équilibrage de charge des services Web dans les conteneurs Docker via le serveur proxy Nginx. 🎜🎜Résumé : 🎜🎜L'équilibrage de charge peut nous aider à réaliser l'allocation et l'utilisation des ressources entre plusieurs serveurs, et à améliorer la disponibilité et la capacité de charge du système. Grâce au serveur proxy Nginx, nous pouvons réaliser un équilibrage de charge des services Web dans les conteneurs Docker. Voici les étapes et un exemple de code pour implémenter l'équilibrage de charge via le serveur proxy Nginx. J'espère que cet article vous aidera ! 🎜

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