Maison  >  Article  >  Opération et maintenance  >  Guide détaillé du déploiement conteneurisé et de la gestion de cluster du serveur Nginx

Guide détaillé du déploiement conteneurisé et de la gestion de cluster du serveur Nginx

PHPz
PHPzoriginal
2023-08-06 11:03:151821parcourir

Guide détaillé du déploiement conteneurisé et de la gestion de cluster du serveur Nginx

Introduction :
Avec le développement du cloud computing et de la technologie des conteneurs, le déploiement conteneurisé est devenu un moyen courant de développement et de déploiement d'applications d'entreprise. En tant que serveur Web hautes performances et serveur proxy inverse, Nginx peut également être déployé et géré via la conteneurisation. Cet article présentera en détail comment conteneuriser le serveur Nginx et améliorer la haute disponibilité grâce à la gestion des clusters.

1. Préparation
Tout d'abord, nous devons installer l'environnement Docker et nous assurer de démarrer le service Docker. Ensuite, nous devons écrire un fichier Dockerfile pour créer l'image Docker Nginx. Voici un exemple simple de Dockerfile :

FROM nginx:latest
COPY nginx.conf /etc/nginx/nginx.conf
COPY default.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Ce Dockerfile sélectionne d'abord la dernière image Nginx comme image de base, puis copie le fichier de configuration Nginx et le fichier de configuration de l'hôte virtuel par défaut que nous avons préparés à l'avance. Enfin, le port 80 du conteneur est exposé et le serveur Nginx est exécuté en mode premier plan.

2. Construire l'image Docker
Après avoir préparé le fichier Docker, nous pouvons utiliser la commande docker build pour créer l'image Docker. En supposant que nous enregistrons le Dockerfile dans le répertoire actuel, nous pouvons utiliser la commande suivante pour le construire :

docker build -t my_nginx .

Cette commande construira une image Docker nommée my_nginx basée sur le Dockerfile. Une fois la construction terminée, vous pouvez utiliser la commande docker images pour afficher la liste d'images existante afin de confirmer que l'image my_nginx a été créée avec succès.

3. Exécutez un seul conteneur Nginx
Maintenant, nous pouvons créer un conteneur Nginx basé sur l'image my_nginx et l'exécuter. Vous pouvez utiliser la commande docker run pour effectuer cette opération :

docker run -d -p 80:80 my_nginx

Cette commande exécutera un nouveau conteneur Nginx en arrière-plan et mappera le port 80 du conteneur au port 80 de l'hôte. Vous pouvez vérifier si le serveur Nginx fonctionne correctement en accédant à http://localhost via votre navigateur.

4. Construire un cluster Nginx
Afin d'améliorer la haute disponibilité du serveur Nginx, nous pouvons utiliser l'outil de gestion de cluster de Docker pour créer un cluster Nginx. Dans cet article, nous utilisons Docker Swarm pour implémenter la gestion des clusters.

Tout d'abord, nous devons initialiser un nœud de gestion Swarm. Le nœud actuel peut être défini comme nœud de gestion Swarm en exécutant la commande suivante :

docker swarm init

Ensuite, nous pouvons créer deux nœuds de travail (hôtes) en exécutant la commande suivante :

docker swarm join-token worker

Après avoir exécuté la commande ci-dessus, une sortie similaire à ce qui suit sera généré :

docker swarm join --token xxxxxxxxxxxxxxxx

Nous devons utiliser cette sortie pour joindre les deux nœuds de travail au cluster Swarm :

docker swarm join --token xxxxxxxxxxxxxxxx

De cette façon, nous avons ajouté avec succès les deux nœuds de travail au cluster Swarm. Ensuite, nous devons créer un service Nginx. Vous pouvez utiliser la commande suivante pour créer un service Nginx :

docker service create --name nginx --replicas 3 -p 80:80 my_nginx

Cette commande créera un service nommé nginx dans le cluster et spécifiera 3 réplicas. Le service crée et distribue automatiquement ces réplicas sur différents nœuds du cluster, créant ainsi un cluster Nginx. Vous pouvez utiliser la commande docker service ls pour afficher tous les services du cluster et leur état.

5. Opérations de gestion de cluster
Une fois que nous avons établi le cluster Nginx, nous pouvons effectuer certaines opérations de gestion de cluster de base.

  1. Extension et réduction
    L'expansion et la réduction du service Nginx peuvent être réalisées grâce aux commandes suivantes :
docker service scale nginx=5
docker service scale nginx=2

La première commande augmente le nombre de répliques du service nginx à 5, et la deuxième commande augmente le nombre de répliques réduites à 2.

  1. Mise à jour du service
    Lorsque nous devons mettre à jour l'image ou le fichier de configuration Nginx, nous pouvons utiliser la commande suivante pour mettre à jour le service :
docker service update --image my_nginx:latest nginx

Cette commande mettra à jour l'image du service nginx vers la dernière version. De même, nous pouvons également mettre à jour d'autres paramètres de configuration du service via la commande docker service update.

  1. Gestion de l'évolutivité du service
    Vous pouvez afficher et gérer l'évolutivité du service via les commandes suivantes :
docker service ps nginx
docker service inspect --pretty nginx

La première commande affichera l'état et les informations de toutes les copies du service nginx, et la deuxième commande affichera le Service nginx Informations détaillées, y compris l'allocation des nœuds et l'état d'exécution des répliques, etc.

Conclusion : 
En conteneurisant le serveur Nginx pour le déploiement et la gestion du cluster, nous pouvons obtenir une disponibilité et une flexibilité plus élevées. Cet article présente en détail l'utilisation de Docker pour créer des images Nginx, exécuter un seul conteneur et utiliser Docker Swarm pour créer et gérer des clusters Nginx. J'espère que les lecteurs pourront en apprendre davantage sur le déploiement de conteneurs Nginx et la gestion de cluster grâce à cet article, et pourront les appliquer et les développer dans des scénarios réels.

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