Maison  >  Article  >  développement back-end  >  Comment configurer le serveur proxy Nginx dans le conteneur Docker pour prendre en charge l'accès HTTPS aux services Web ?

Comment configurer le serveur proxy Nginx dans le conteneur Docker pour prendre en charge l'accès HTTPS aux services Web ?

王林
王林original
2023-09-05 13:19:58952parcourir

Comment configurer le serveur proxy Nginx dans le conteneur Docker pour prendre en charge laccès HTTPS aux services Web ?

Comment configurer le serveur proxy Nginx dans le conteneur Docker pour prendre en charge l'accès HTTPS aux services Web ?

Avec le développement rapide d'Internet, les problèmes de sécurité de la transmission des données attirent de plus en plus l'attention. Afin de protéger la sécurité de la transmission des données des services Web, de nombreux sites Web ont commencé à utiliser le protocole HTTPS pour la transmission cryptée. Dans le processus de développement et de déploiement, l'utilisation de conteneurs Docker pour créer et gérer des services Web est devenue courante. Cet article explique comment configurer le serveur proxy Nginx dans un conteneur Docker pour prendre en charge l'accès HTTPS aux services Web.

Étape 1 : Générer un certificat SSL
Tout d'abord, nous devons générer un certificat SSL pour garantir l'intégrité et la sécurité de la transmission cryptée. Nous pouvons utiliser des certificats auto-signés à des fins de tests et de développement. Supposons que les fichiers de certificat que nous souhaitons générer sont respectivement server.crt et server.key. server.crtserver.key

步骤二:创建Dockerfile
在开始之前,创建一个Dockerfile来构建我们的Nginx代理服务器容器。

FROM nginx:latest

# 复制SSL证书
COPY server.crt /etc/nginx/conf.d/server.crt
COPY server.key /etc/nginx/conf.d/server.key

# 复制Nginx配置文件
COPY nginx.conf /etc/nginx/conf.d/default.conf

# 暴露HTTPS端口
EXPOSE 443

在Dockerfile中,我们从官方的Nginx镜像中构建我们的自定义镜像。然后,我们将SSL证书文件复制到/etc/nginx/conf.d/目录下,并将Nginx配置文件复制到/etc/nginx/conf.d/目录下。最后,我们通过EXPOSE命令声明要暴露的端口,这里是443端口(HTTPS默认端口)。

步骤三:创建Nginx配置文件
接下来,我们需要创建一个Nginx的配置文件,来配置代理服务器。我们可以在本地创建一个名为nginx.conf的文件,并将以下内容粘贴进去:

server {
    listen 443;
    server_name yourdomain.com;

    ssl on;
    ssl_certificate /etc/nginx/conf.d/server.crt;
    ssl_certificate_key /etc/nginx/conf.d/server.key;

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

在以上代码中,我们定义了一个监听443端口的服务器块。需要注意的是,server_name指令应与您的域名匹配。我们通过ssl on命令开启SSL支持,并且指定了SSL证书的路径。

然后,在location /指令中,我们将传入的请求转发到名为web-service-container的容器中的80端口。您可以在实际使用中将这个名称替换为您要代理的容器名称或IP地址。

步骤四:构建和运行Docker容器
现在我们可以通过以下命令来构建和运行我们的Docker容器了:

docker build -t nginx-proxy .
docker run -d -p 443:443 --name nginx-proxy-container nginx-proxy

以上命令会构建一个名为nginx-proxy的Docker镜像,并将该镜像运行为一个名为nginx-proxy-container的容器。我们将容器的443端口映射到宿主机的443端口。

至此,我们已经成功地在Docker容器中配置了Nginx代理服务器以支持Web服务的HTTPS访问。现在,您可以通过访问https://yourdomain.com

Étape 2 : Créer un Dockerfile

Avant de commencer, créez un Dockerfile pour créer notre conteneur de serveur proxy Nginx.
rrreee

Dans le Dockerfile, nous construisons notre image personnalisée à partir de l'image officielle Nginx. Ensuite, nous copions le fichier de certificat SSL dans le répertoire /etc/nginx/conf.d/, et copions le fichier de configuration Nginx dans /etc/nginx/conf.d/ répertoire. Enfin, nous déclarons le port à exposer via la commande EXPOSE, voici le port 443 (port HTTPS par défaut). 🎜🎜Étape 3 : Créer un fichier de configuration Nginx🎜Ensuite, nous devons créer un fichier de configuration Nginx pour configurer le serveur proxy. Nous pouvons créer localement un fichier nommé nginx.conf et y coller le contenu suivant : 🎜rrreee🎜Dans le code ci-dessus, nous définissons un bloc serveur qui écoute sur le port 443. Notez que la directive server_name doit correspondre à votre nom de domaine. Nous activons la prise en charge SSL via la commande ssl on et spécifions le chemin d'accès au certificat SSL. 🎜🎜Ensuite, dans la directive location /, nous transmettons la requête entrante au port 80 dans le conteneur nommé web-service-container. Vous pouvez remplacer ce nom par le nom du conteneur ou l'adresse IP que vous souhaitez utiliser comme proxy. 🎜🎜Étape 4 : Créer et exécuter le conteneur Docker🎜Nous pouvons maintenant créer et exécuter notre conteneur Docker avec la commande suivante : 🎜rrreee🎜La commande ci-dessus construira une image Docker nommée nginx-proxy , et exécutez l'image en tant que conteneur nommé nginx-proxy-container. Nous mappons le port 443 du conteneur au port 443 de l'hôte. 🎜🎜À ce stade, nous avons configuré avec succès le serveur proxy Nginx dans le conteneur Docker pour prendre en charge l'accès HTTPS au service Web. Vous pouvez désormais accéder à votre service Web en visitant https://votredomaine.com. 🎜🎜Résumé🎜Cet article décrit comment configurer un serveur proxy Nginx dans un conteneur Docker pour prendre en charge l'accès HTTPS aux services Web. En utilisant des certificats SSL et des fichiers de configuration Nginx, nous sommes en mesure de protéger la sécurité de la transmission des données du service Web. Cette approche basée sur Docker facilite non seulement le processus de développement et de déploiement, mais offre également une isolation et une évolutivité puissantes du code. J'espère que cet article vous sera utile, 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