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
Créez un nouveau réseau Docker pour la communication entre les conteneurs :
docker network create nginx-proxy
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
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.
5. Vérifiez la configuration
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
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.
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é.
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
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!