Maison développement back-end tutoriel php Comment configurer le serveur proxy Nginx dans un conteneur Docker pour améliorer l'évolutivité élastique des services web ?

Comment configurer le serveur proxy Nginx dans un conteneur Docker pour améliorer l'évolutivité élastique des services web ?

Sep 05, 2023 pm 06:03 PM
docker容器 nginx代理 弹性伸缩

Comment configurer le serveur proxy Nginx dans un conteneur Docker pour améliorer lévolutivité élastique des services web ?

Comment configurer le serveur proxy Nginx dans le conteneur Docker pour améliorer l'évolutivité élastique des services web ?

À l'ère actuelle du cloud computing, la mise à l'échelle élastique est un moyen important de maintenir une haute disponibilité et des performances élevées des services Web. En tant que technologie de conteneurisation légère, Docker est devenu un outil important pour créer une architecture de mise à l’échelle élastique. En tant que serveur proxy inverse hautes performances, Nginx peut distribuer efficacement le trafic et améliorer la fiabilité du service et les capacités d'équilibrage de charge. Cet article explique comment configurer le serveur proxy Nginx dans un conteneur Docker pour améliorer l'évolutivité élastique des services Web.

Tout d'abord, nous devons créer un service Web simple pour les tests. Nous utilisons Node.js comme serveur Web et le framework Express.js pour créer une application Hello World simple. Voici un exemple de code pour une application Node.js simple :

// app.js
const express = require('express');
const app = express();

app.get('/', (req, res) => {
    res.send('Hello, World!');
});

app.listen(3000, () => {
    console.log('Server is running on port 3000');
});
Copier après la connexion

Ensuite, nous utilisons Docker pour conteneuriser notre application. Créez un Dockerfile dans le répertoire racine du projet et remplissez le contenu suivant :

# Dockerfile
FROM node:alpine

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3000

CMD ["node", "app.js"]
Copier après la connexion

Le Dockerfile ci-dessus spécifie notre image de base comme node:alpine, définit le répertoire de travail comme /app et copie les dépendances de l'application et le code dans Mirroring. En même temps, nous exposons le port 3000 du conteneur et exécutons la commande node app.js pour exécuter notre application lors du démarrage du conteneur.

Ensuite, nous utilisons Docker pour créer l'image et exécuter le conteneur. Exécutez la commande suivante sur la ligne de commande :

$ docker build -t myapp .
$ docker run -dp 3000:3000 myapp
Copier après la connexion

La commande ci-dessus construira une image nommée myapp et démarrera un conteneur pour exécuter notre application. Nous mappons le port 3000 du conteneur sur le port 3000 de l'hôte et configurons le conteneur pour qu'il s'exécute en arrière-plan.

Maintenant, notre application s'exécute avec succès dans le conteneur Docker et est accessible en accédant au port 3000 de l'adresse IP de l'hôte.

Ensuite, nous configurerons le serveur proxy Nginx pour fournir des fonctions d'équilibrage de charge et de mise à l'échelle élastique. Tout d’abord, nous devons installer Nginx et modifier le fichier de configuration Nginx. Exécutez la commande suivante dans la ligne de commande :

$ sudo apt-get update
$ sudo apt-get install nginx
$ sudo nano /etc/nginx/conf.d/default.conf
Copier après la connexion

Dans le fichier de configuration Nginx ouvert, remplissez le contenu suivant :

# /etc/nginx/conf.d/default.conf
upstream app_servers {
    # 在这里填入你的Docker容器IP和端口信息,可以有多个
    server <CONTAINER_IP>:3000;
}

server {
    listen 80;

    location / {
        proxy_pass http://app_servers;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
Copier après la connexion

Dans le fichier de configuration ci-dessus, nous utilisons le bloc amont pour définir notre cluster de serveurs d'applications, c'est-à-dire notre Conteneur Docker. Nous remplissons l'adresse IP et le port du conteneur dans le bloc serveur et utilisons la directive proxy_pass pour transmettre la requête au cluster de serveurs d'applications.

Après avoir enregistré et quitté le fichier de configuration Nginx, redémarrez le service Nginx :

$ sudo service nginx restart
Copier après la connexion

Maintenant, notre serveur proxy Nginx a été configuré. Nous pouvons accéder à notre application en accédant à l'adresse IP de l'hôte. Sous la fonction d'équilibrage de charge de Nginx, la requête sera distribuée à n'importe quelle instance de notre cluster de conteneurs Docker.

Lorsque nous devons ajouter des instances de conteneur pour une mise à l'échelle élastique, il nous suffit de réexécuter la commande docker pour démarrer un nouveau conteneur. Nginx découvre automatiquement les nouvelles instances de conteneur et les inclut dans l'équilibrage de charge.

Résumé :

En conteneurisant notre application avec Docker et en configurant le serveur proxy Nginx, nous pouvons atteindre l'évolutivité élastique des services Web. La combinaison de Docker et Nginx peut être utilisée pour étendre et gérer les services Web de manière très flexible. J'espère que cet article vous aidera à comprendre comment configurer le serveur proxy Nginx dans un conteneur Docker pour améliorer l'évolutivité élastique des services Web.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment implémenter la technologie de conteneur Docker en Java Comment implémenter la technologie de conteneur Docker en Java Mar 08, 2024 am 10:19 AM

Méthode d'implémentation : 1. Ajoutez la dépendance de l'API Docker Java à votre projet ; 2. Créez un client Docker 3. Utilisez le client Docker pour créer et démarrer un conteneur Docker.

Configuration de la mise à jour du cache proxy Nginx pour répondre aux modifications du contenu du site Web en temps réel Configuration de la mise à jour du cache proxy Nginx pour répondre aux modifications du contenu du site Web en temps réel Jul 07, 2023 am 08:06 AM

Configuration de la mise à jour du cache proxy Nginx, réponse en temps réel aux modifications du contenu du site Web Introduction : Avec l'augmentation continue des visites de sites Web, comment améliorer les performances du site Web est devenu un problème important. Nginx est un serveur HTTP et un serveur proxy inverse hautes performances, et la mise en cache proxy en est une partie importante. Dans l'exploitation et la maintenance quotidiennes, il est souvent nécessaire de mettre à jour et de modifier le contenu du site Web tout en maintenant la vitesse de réponse lorsque les utilisateurs y accèdent. Cet article explique comment configurer la mise en cache proxy dans Nginx et lui permettre de répondre au site Web en temps réel.

Conteneurs Docker en langage Go développés localement Conteneurs Docker en langage Go développés localement Jun 01, 2023 pm 07:31 PM

Le langage Go est aujourd'hui l'un des langages les plus populaires pour le développement Internet. Dans le développement quotidien, il est souvent nécessaire d'utiliser des conteneurs Docker pour créer des environnements de développement locaux pour les services. Cet article décrira brièvement l'application des conteneurs Docker dans le développement du langage Go. Introduction aux conteneurs Docker Docker est une technologie de virtualisation qui peut aider les développeurs à configurer rapidement des environnements de développement, à créer des images, à déployer des applications, etc. localement, évitant ainsi les incohérences de développement, de test, de déploiement, etc. causées par différents environnements. Le conteneur Docker est Doc

Comment le framework Java prend-il en charge la mise à l'échelle élastique dans l'architecture des microservices ? Comment le framework Java prend-il en charge la mise à l'échelle élastique dans l'architecture des microservices ? Jun 04, 2024 pm 03:41 PM

Le framework Java prend en charge la mise à l'échelle élastique dans l'architecture des microservices via les mécanismes suivants : Kubernetes : une plate-forme de gestion et de mise à l'échelle des applications conteneurisées qui ajuste automatiquement le nombre de répliques de conteneurs en fonction de la charge. SpringBootActuator : fournit des points de terminaison pour la surveillance et la gestion des applications, qui peuvent être utilisés pour collecter des métriques de charge et déclencher des opérations de mise à l'échelle.

Spring Cloud Kubernetes : adoptez la conteneurisation et laissez vos applications s'exécuter dans les nuages Spring Cloud Kubernetes : adoptez la conteneurisation et laissez vos applications s'exécuter dans les nuages Mar 09, 2024 am 09:50 AM

À l’ère du cloud computing, la conteneurisation est devenue la pierre angulaire de l’architecture d’applications moderne. springcloudkubernetes fait partie intégrante de l'écosystème springCloud. Il fournit aux développeurs un ensemble complet d'outils pour déployer et gérer de manière transparente les applications SpringBoot dans les clusters Kubernetes. Avantages de la conteneurisation La technologie de conteneurisation apporte de nombreux avantages, notamment : Isolation et portabilité : les conteneurs isolent les applications de l'infrastructure sous-jacente, garantissant ainsi que les applications peuvent s'exécuter normalement dans différents environnements. Mise à l'échelle élastique : Kubernetes peut automatiquement mettre à l'échelle les copies de conteneurs en fonction de la charge pour répondre aux besoins des applications et améliorer l'utilisation des ressources. Découverte de services : Kubernetes

Au-delà des bases de l'équilibrage de charge PHP : plongez dans les concepts avancés Au-delà des bases de l'équilibrage de charge PHP : plongez dans les concepts avancés Mar 02, 2024 pm 01:30 PM

Politique avancée d'équilibrage de charge pondérée à tour de rôle : attribuez des pondérations en fonction de la capacité ou des performances du serveur, en donnant la priorité aux serveurs ayant des charges inférieures. //Exemple d'interrogation pondérée $servers=array("server1"=>1,"server2"=>2,"server3"=>3);//Sélectionner aléatoirement des serveurs en fonction du poids $selected_server=array_rand($servers,1) ;Connexions minimales : Attribuez de nouvelles connexions au serveur avec le plus petit nombre de connexions. //Exemple de connexion minimale $servers=array();$min_connections=null;$selected_server=n

Comment utiliser Docker avec Go ? Comment utiliser Docker avec Go ? May 11, 2023 pm 04:01 PM

Avec la popularisation progressive de la technologie du cloud computing, Docker, en tant que technologie de conteneurisation légère, a attiré davantage d'attention. En tant que langage de programmation de nouvelle génération efficace et concis, le langage Go peut améliorer l'efficacité du développement des programmeurs lorsqu'il est combiné avec Docker. Cet article explique comment utiliser Docker en langage Go. 1. Introduction à Docker Docker peut être considéré comme une machine virtuelle légère basée sur le langage Go. Elle présente les caractéristiques suivantes : Docker fournit un mécanisme de gestion complet.

Comment configurer le serveur proxy Nginx pour obtenir un équilibrage de charge entre plusieurs serveurs ? Comment configurer le serveur proxy Nginx pour obtenir un équilibrage de charge entre plusieurs serveurs ? Sep 05, 2023 am 08:30 AM

Comment configurer le serveur proxy Nginx pour obtenir un équilibrage de charge entre plusieurs serveurs ? Introduction : Dans les applications Internet modernes, l'équilibrage de charge du serveur est l'un des facteurs importants pour garantir la haute disponibilité, les performances et l'évolutivité des applications. Nginx est un serveur proxy open source hautes performances doté d'une puissante fonction d'équilibrage de charge. Cet article explique comment utiliser le serveur proxy Nginx pour réaliser l'équilibrage de charge et fournit des exemples de code pertinents. Étape 1 : Installer Nginx Tout d’abord, nous devons installer Nginx. Peut être passé avec

See all articles