introduction:
Avec l'application généralisée de la technologie de la conteneurisation, la demande d'équilibrage de charge des services Web a progressivement augmenté. En tant que serveur Web efficace et serveur proxy inversé, Nginx est devenu l'outil préféré pour de nombreux développeurs pour obtenir l'équilibrage de charge. Cet article expliquera en détail comment configurer un serveur proxy NGINX pour réaliser l'équilibrage de charge des services Web entre plusieurs conteneurs Docker.
Tout d'abord, nous devons installer l'environnement Docker sur l'hôte. Docker est une plate-forme conteneurisée open source qui aide les développeurs à construire, publier et exécuter des applications plus efficacement. Pour des étapes d'installation spécifiques, veuillez vous référer à la documentation officielle de Docker.
Avant de configurer un service Web, nous devons écrire un Dockerfile pour notre service Web. DockerFile est un fichier texte qui définit comment créer une image Docker. Grâce à ce fichier, nous pouvons spécifier l'image de base utilisée, les dépendances qui doivent être installées et d'autres opérations connexes.
Voici un simple exemple dockerfile:
De nginx Copier nginx.conf /etc/nginx/nginx.conf Copy default.conf /etc/nginx/conf.d/default.conf Copier html / usr / share / nginx / html Exposer 80 Cmd ["nginx", "-g", "daemon off;"]
Dans cet exemple, nous avons utilisé l'image de base Nginx officielle et copié les fichiers de configuration personnalisés et les ressources Web dans le conteneur. Enfin, nous exposons le port 80 du conteneur et commençons le service Nginx à l'aide de la commande CMD.
Après avoir terminé la configuration de l'environnement Docker, l'étape suivante consiste à configurer le serveur proxy Nginx. Tout d'abord, nous devons créer un nouveau fichier de configuration Nginx (nginx.conf) et définir les configurations liées à l'équilibrage de charge.
Voici un exemple de fichier de configuration Nginx:
Worker_Processes 1; événements { Worker_Connections 1024; } http { Backend en amont { serveur backend1: 80; serveur backend2: 80; } serveur { Écoutez 80; emplacement / { proxy_pass http: // backend; proxy_set_header host $ host; proxy_set_header x-real-ip $ Remote_addr; } } }
Dans ce fichier de configuration, nous définissons un backend en amont, qui contient les adresses et les ports de plusieurs conteneurs backend. Ensuite, dans le bloc de serveur, nous transférons la demande au service backend via la directive Proxy_Pass et passons l'en-tête de demande à l'aide de la directive Proxy_Set_header.
Mettez le fichier de configuration Nginx.conf et DockerFile dans le même répertoire et utilisez la commande suivante pour créer une image Docker:
docker build -t my-nginx.
Après avoir configuré le serveur proxy Nginx, nous devons démarrer plusieurs conteneurs Docker en tant que services backend. Deux conteneurs peuvent être exécutés avec la commande suivante:
docker run -d --name backend1 my-nginx docker run -d --name backend2 my-nginx
De cette façon, le service Nginx dans les deux conteneurs commence à fonctionner.
Ensuite, nous devons créer un nouveau conteneur pour exécuter le serveur proxy Nginx configuré et le connecter au conteneur backend. Le serveur proxy peut être démarré avec la commande suivante:
docker run -d -p 80:80 - link backend1 - link backend2 my-nginx
À l'heure actuelle, toutes les demandes du port hôte 80 seront reçues par le serveur proxy Nginx et distribuées au conteneur backend en fonction de l'algorithme d'équilibrage de charge.
En configurant un serveur proxy Nginx, nous pouvons facilement réaliser un équilibre de charge de service Web entre plusieurs conteneurs Docker. Cela améliore non seulement les performances et la stabilité de l'application, mais utilise également efficacement les ressources du serveur. Espérons que les étapes et les exemples de code fournis dans cet article peuvent vous aider à mieux configurer et utiliser Nginx pour l'équilibrage de charge.