Maison  >  Article  >  développement back-end  >  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 ?

WBOY
WBOYoriginal
2023-09-05 18:03:39745parcourir

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');
});

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"]

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

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

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;
    }
}

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

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:
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