Maison  >  Article  >  développement back-end  >  Comment utiliser le serveur proxy Nginx dans Docker pour sécuriser les services Web ?

Comment utiliser le serveur proxy Nginx dans Docker pour sécuriser les services Web ?

王林
王林original
2023-09-05 17:49:45617parcourir

Comment utiliser le serveur proxy Nginx dans Docker pour sécuriser les services Web ?

Comment utiliser le serveur proxy Nginx dans Docker pour sécuriser les services web ?

Avec le développement rapide d'Internet, le déploiement d'applications Web devient de plus en plus important, et la sécurité des applications doit également être prise en considération. Nginx est un serveur Web hautes performances et un serveur proxy inverse qui fournit des fonctionnalités puissantes pour protéger la sécurité des services Web. Docker est un projet open source largement utilisé dans le déploiement de conteneurs. La combinaison des deux peut mieux protéger la sécurité des applications Web.

Cet article expliquera comment utiliser le serveur proxy Nginx dans Docker pour protéger la sécurité des services Web, avec des exemples de code.

Étape 1 : Installer Docker et Docker Compose
Avant de commencer, vous devez d'abord installer Docker et Docker Compose. Sur les systèmes Linux, vous pouvez installer Docker à l'aide de la commande suivante :

sudo apt-get update
sudo apt-get install docker.io

Ensuite, installez Docker Compose :

sudo apt-get install docker-compose

Étape 2 : Créez un conteneur Docker
Avant d'utiliser le serveur proxy Nginx, vous devez créer un conteneur Docker pour exécuter le Web service. Voici un exemple simple d'application Node.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');
});

Enregistrez le code ci-dessus sous app.js. app.js

然后,创建一个名为Dockerfile的文件,用于构建Docker镜像:

FROM node:12

WORKDIR /app

COPY package.json .

RUN npm install

COPY . .

EXPOSE 3000

CMD ["node", "app.js"]

在同级目录下执行以下命令构建Docker镜像:

docker build -t webapp .

然后创建一个名为docker-compose.yml的文件,用于定义Docker容器和Nginx代理服务器的配置:

version: '3'

services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 3000
    networks:
      - proxy

  proxy:
    image: nginx
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    ports:
      - 80:80
    networks:
      - proxy

networks:
  proxy:

在同级目录下执行以下命令启动Docker容器和Nginx代理服务器:

docker-compose up -d

步骤3:配置Nginx代理服务器
现在,需要配置Nginx代理服务器来将所有的请求转发到Docker容器中运行的Web服务。创建一个名为nginx.conf的文件,用于配置Nginx代理服务器:

worker_processes 1;

events {
  worker_connections 1024;
}

http {
  upstream webapp {
    server web:3000;
  }

  server {
    listen 80;

    location / {
      proxy_pass http://webapp;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }
}

保存文件后重启Docker容器和Nginx代理服务器:

docker-compose restart

步骤4:测试配置是否生效
现在,可以通过访问http://localhost来测试是否成功配置了Nginx代理服务器。如果一切正常,你应该能够看到Hello, World!

Ensuite, créez un fichier nommé Dockerfile pour construire l'image Docker :

rrreee

Exécutez la commande suivante dans le même répertoire pour construire l'image Docker :

rrreee

Créez ensuite un fichier nommé Le fichier docker-compose.yml permet de définir la configuration du conteneur Docker et du serveur proxy Nginx :
    rrreee
  • Exécutez la commande suivante dans le même répertoire pour démarrer le conteneur Docker et le serveur proxy Nginx :
  • rrreee
  • Step 3 : Configurer le serveur proxy Nginx
  • Vous devez maintenant configurer le serveur proxy Nginx pour transmettre toutes les requêtes au service Web exécuté dans le conteneur Docker. Créez un fichier nommé nginx.conf pour configurer le serveur proxy Nginx :
  • rrreee
  • Redémarrez le conteneur Docker et le serveur proxy Nginx après avoir enregistré le fichier :
rrreee

Étape 4 : Testez si la configuration prend effet

Maintenant, vous pouvez tester si le serveur proxy Nginx est configuré avec succès en visitant http://localhost. Si tout va bien, vous devriez pouvoir voir la réponse Hello, World!. 🎜🎜Grâce aux étapes ci-dessus, nous avons utilisé avec succès le serveur proxy Nginx dans Docker pour protéger la sécurité des services Web. Nginx transmet toutes les requêtes au service Web exécuté dans le conteneur Docker via un proxy inverse et fournit des fonctions puissantes pour protéger la sécurité des applications Web. 🎜🎜Résumé : 🎜🎜🎜La combinaison de Docker et Nginx peut fournir une protection puissante pour la sécurité des applications Web ; 🎜🎜Créez des conteneurs et démarrez des serveurs proxy Nginx via Docker et Docker Compose 🎜🎜Utilisez Nginx pour configurer le proxy inverse pour connecter tous ; La demande est transmise au service Web exécuté dans le conteneur Docker. 🎜🎜🎜J'espère que cet article vous aidera à comprendre comment utiliser le serveur proxy Nginx dans Docker pour protéger la sécurité 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