Maison  >  Article  >  développement back-end  >  Comment configurer le serveur proxy Nginx et activer SSL à l'aide du conteneur Docker ?

Comment configurer le serveur proxy Nginx et activer SSL à l'aide du conteneur Docker ?

PHPz
PHPzoriginal
2023-09-05 16:45:471111parcourir

Comment configurer le serveur proxy Nginx et activer SSL à laide du conteneur Docker ?

Comment configurer le serveur proxy Nginx et activer SSL à l'aide du conteneur Docker ?

Dans l'environnement réseau actuel, la sécurité est devenue un problème incontournable. Afin de protéger la transmission sécurisée des données, l'activation des certificats SSL est devenue une étape nécessaire. Utiliser des conteneurs Docker pour configurer des serveurs proxy Nginx est devenu une tendance. Dans cet article, nous expliquerons comment utiliser les conteneurs Docker pour configurer le serveur proxy Nginx et activer SSL.

Étape 1 : Installer Docker
Tout d’abord, nous devons installer Docker. Vous pouvez l'installer en vous référant au guide d'installation officiel de Docker en fonction de votre système d'exploitation.

Étape 2 : Créer un fichier de configuration Nginx
Avant de configurer le serveur proxy Nginx, nous devons créer un fichier de configuration pour définir nos règles de proxy. Créez un fichier nommé nginx.conf et collez-y le contenu suivant : nginx.conf的文件,并将以下内容粘贴进去:

worker_processes auto;

events {
  worker_connections 1024;
}

http {
  server {
    listen 80;
    server_name example.com;
    
    location / {
      proxy_pass http://backend;
      proxy_set_header Host $host;
    }
  }
}

上面的配置文件指定了Nginx代理服务器监听80端口,并将所有的请求代理到名为backend的后端服务器。

步骤3:创建Docker镜像
接下来,我们需要创建一个Docker镜像来运行Nginx代理服务器。在命令行中,执行以下命令:

docker build -t nginx-proxy .

该命令将读取当前目录下的Dockerfile文件,并根据其中的指令自动构建一个Docker镜像,命名为nginx-proxy

步骤4:运行Docker容器
在Docker Hub上有一个名为jwilder/nginx-proxy的官方Nginx代理服务器镜像。我们可以使用该镜像来运行一个Nginx代理服务器容器。

在命令行中,执行以下命令:

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

该命令将创建一个名为nginx-proxy的Docker容器,并将主机的80端口映射到容器的80端口,443端口映射到容器的443端口。-v /var/run/docker.sock:/tmp/docker.sock:ro这个选项是为了让Docker容器能够读取主机上的Docker套接字文件。

步骤5:配置SSL证书
为了启用SSL,我们需要为我们的代理服务器配置SSL证书。我们可以使用Let's Encrypt提供的免费SSL证书。

在命令行中,执行以下命令:

docker run -d -p 80:80 -p 443:443 --name nginx-proxy nginx-proxy

该命令将重新创建一个名为nginx-proxy的Docker容器,并将主机的80端口映射到容器的80端口,443端口映射到容器的443端口。

然后,执行以下命令来生成SSL证书:

docker exec nginx-proxy /app/certbot-setup.sh

该脚本将自动安装certbot客户端,并请求Let's Encrypt服务器生成SSL证书。

步骤6:配置代理规则
最后,我们需要配置我们的代理规则。我们可以使用Docker的环境变量来定义我们的代理规则。

在命令行中,执行以下命令:

docker run -d -p 80:80 -p 443:443 -e "VIRTUAL_HOST=example.com" -e "LETSENCRYPT_HOST=example.com" --name backend your-backend

该命令将创建一个名为backend的Docker容器,并将主机的80端口映射到容器的80端口,443端口映射到容器的443端口。-e "VIRTUAL_HOST=example.com" -e "LETSENCRYPT_HOST=example.com"rrreee

Le fichier de configuration ci-dessus spécifie que le serveur proxy Nginx écoute sur le port 80 et transmet toutes les requêtes au serveur nommé le serveur backend du backend.

Étape 3 : Créer une image Docker

Ensuite, nous devons créer une image Docker pour exécuter le serveur proxy Nginx. Dans la ligne de commande, exécutez la commande suivante :

rrreee🎜Cette commande lira le fichier Dockerfile dans le répertoire courant et construira automatiquement une image Docker selon les instructions qu'il contient, nommée nginx- mandataire . 🎜🎜Étape 4 : Exécutez le conteneur Docker 🎜Il existe une image officielle du serveur proxy Nginx appelée jwilder/nginx-proxy sur Docker Hub. Nous pouvons utiliser cette image pour exécuter un conteneur de serveur proxy Nginx. 🎜🎜Dans la ligne de commande, exécutez la commande suivante : 🎜rrreee🎜Cette commande créera un conteneur Docker nommé nginx-proxy et mappera le port 80 de l'hôte au port 80 du conteneur, le port 443 mappera au port 443 du conteneur. -v /var/run/docker.sock:/tmp/docker.sock:ro Cette option permet au conteneur Docker de lire le fichier de socket Docker sur l'hôte. 🎜🎜Étape 5 : Configurer le certificat SSL🎜Afin d'activer SSL, nous devons configurer le certificat SSL pour notre serveur proxy. Nous pouvons utiliser un certificat SSL gratuit fourni par Let's Encrypt. 🎜🎜Dans la ligne de commande, exécutez la commande suivante : 🎜rrreee🎜Cette commande recréera un conteneur Docker nommé nginx-proxy et mappera le port 80 de l'hôte au port 80 du conteneur, 443 Le port est mappé au port 443 du conteneur. 🎜🎜Ensuite, exécutez la commande suivante pour générer un certificat SSL : 🎜rrreee🎜Le script installera automatiquement le client certbot et demandera au serveur Let's Encrypt de générer un certificat SSL. 🎜🎜Étape 6 : Configurer les règles de proxy🎜Enfin, nous devons configurer nos règles de proxy. Nous pouvons utiliser les variables d'environnement de Docker pour définir nos règles de proxy. 🎜🎜Dans la ligne de commande, exécutez la commande suivante : 🎜rrreee🎜Cette commande créera un conteneur Docker nommé backend et mappera le port 80 de l'hôte au port 80 du conteneur et le port 443 au 443. port du conteneur. -e "VIRTUAL_HOST=example.com" -e "LETSENCRYPT_HOST=example.com"Ces deux options configureront nos règles de proxy. 🎜🎜Après avoir terminé les étapes ci-dessus, notre serveur proxy Nginx peut effectuer un proxy sécurisé via SSL. Vous pouvez personnaliser davantage de règles de proxy et ajouter davantage de conteneurs pour répondre à vos besoins. 🎜🎜J'espère que cet article vous sera utile. Si vous avez des questions, n'hésitez pas à laisser un commentaire ci-dessous et j'essaierai d'y répondre. Merci d'avoir lu! 🎜

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