Maison  >  Article  >  développement back-end  >  Comment configurer le serveur proxy Nginx dans Docker pour protéger l'accès aux services web ?

Comment configurer le serveur proxy Nginx dans Docker pour protéger l'accès aux services web ?

PHPz
PHPzoriginal
2023-09-05 18:23:00701parcourir

Comment configurer le serveur proxy Nginx dans Docker pour protéger laccès aux services web ?

Comment configurer le serveur proxy Nginx dans Docker pour protéger l'accès aux services web ?

1. Introduction générale
Dans le développement d'applications Web modernes, la sécurité est une considération très importante. Afin de protéger l'accès aux services Web et d'améliorer la sécurité des applications, nous pouvons utiliser Nginx comme serveur proxy. Cet article explique comment configurer le serveur proxy Nginx dans Docker pour protéger l'accès aux services Web.

2. Installer Docker
Tout d'abord, nous devons installer Docker sur la machine locale. Docker est une plateforme de conteneurisation open source qui nous aide à déployer et gérer facilement des applications. Vous pouvez télécharger la version Docker adaptée à votre système d'exploitation via le site officiel de Docker et l'installer conformément à la documentation officielle.

3. Créez un conteneur de serveur proxy Nginx

  1. Créez un nouveau réseau Docker pour la communication entre les conteneurs :

    docker network create nginx-proxy
  2. Créez un nouveau conteneur de serveur proxy Nginx et connectez-le au réseau nouvellement créé :

    docker run -d 
      --name nginx-proxy 
      --network nginx-proxy 
      -p 80:80 
      -v /var/run/docker.sock:/tmp/docker.sock:ro 
      jwilder/nginx-proxy

    In Dans cet exemple, nous avons utilisé le miroir jwilder/nginx-proxy. Cette image peut détecter automatiquement les conteneurs exécutés sur le même réseau Docker et mapper le port spécifié au port 80 du serveur proxy Nginx.

4. Créez un conteneur de services Web

  1. Créez un nouveau conteneur de services Web et connectez-le au réseau Docker créé précédemment. Dans cet exemple, nous utiliserons un simple conteneur Nginx comme service Web.

    docker run -d 
      --name web 
      --network nginx-proxy 
      -e VIRTUAL_HOST=example.com 
      nginx:latest

    Dans cet exemple, nous avons spécifié la variable d'environnement VIRTUAL_HOST=example.com. Cela indique au serveur proxy Nginx de transmettre toutes les requêtes à example.com vers le conteneur connecté au réseau nginx-proxy.

  2. Plus de conteneurs de services Web peuvent être ajoutés en fonction de vos besoins. Assurez-vous simplement qu'ils sont tous deux connectés au réseau nginx-proxy et définissez la variable d'environnement VIRTUAL_HOST correspondante.

5. Vérifiez la configuration

  1. Modifiez le fichier hosts sur la machine locale et pointez example.com vers l'adresse IP locale.

    sudo echo "127.0.0.1 example.com" >> /etc/hosts
  2. Ouvrez votre navigateur et entrez example.com. Si tout est configuré correctement, vous devriez pouvoir voir la page d'accueil par défaut de Nginx.

6. Protéger les droits d'accès aux services Web
Afin de protéger les droits d'accès aux services Web, nous pouvons utiliser la fonction d'authentification de base de Nginx.

  1. Créez un fichier contenant le nom d'utilisateur et le mot de passe pour stocker les informations d'autorisation :

    sudo sh -c "echo -n 'username:' >> /etc/nginx/.htpasswd"
    sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"

    Veuillez noter de remplacer "nom d'utilisateur" par le nom d'utilisateur souhaité.

  2. Ajoutez la variable d'environnement suivante dans le conteneur du serveur proxy Nginx pour activer l'authentification de base :

    docker run -d 
      --name nginx-proxy 
      --network nginx-proxy 
      -p 80:80 
      -v /var/run/docker.sock:/tmp/docker.sock:ro 
      -v /etc/nginx/.htpasswd:/etc/nginx/.htpasswd:ro 
      -e HTTP_AUTHENTICATION=true 
      jwilder/nginx-proxy
  3. Redémarrez le conteneur du serveur proxy Nginx :

    docker restart nginx-proxy

    Maintenant, l'accès à example.com fera apparaître une boîte de dialogue d'authentification, un nom d'utilisateur. et un mot de passe sont requis.

Ci-dessus sont les étapes et un exemple de code sur la façon de configurer le serveur proxy Nginx dans Docker pour protéger l'accès aux services Web. De cette manière, nous pouvons protéger efficacement nos services Web et améliorer la sécurité de nos applications. J'espère que cet article vous aidera !

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