Docker 部署反向代理 Nginx 并配置 SSL 证书

STEP 01:上传证书至服务器

选定一个目录 ,用于存放SSL证书这里以/home目录为例

#切换目录
cd /home 
#创建文件夹
mkdir ssl

将证书文件(后缀pemkey)上传至创建的ssl文件夹中

STEP 02:创建 nginx.conf 配置文件

#创建文件
touch nginx.conf
#编辑
vim nginx.conf

在nginx.conf配置文件里添加以下内容:

server {
    listen 80;
    server_name 域名;
    return 301 https://$host$request_uri;
}


server {
listen 443 ssl;
server_name 你的域名;
ssl_certificate /etc/nginx/ssl/xxxxxxxxx.pem;
ssl_certificate_key /etc/nginx/ssl/xxxxxxxxxx.key;
location / {
proxy_pass http://代理地址;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}

这段Nginx配置实现了两个功能:一是将80端口的HTTP请求永久重定向到对应的HTTPS地址;二是在443端口通过SSL加密,把接收到的HTTPS请求反向代理到指定的服务器,并传递客户端相关信息。将其中的域名、代理地址、证书文件修改为自己的即可

STEP 03:制作 Docker 镜像

创建Dockerfile(注意要与nginx.conf以及ssl文件夹在同一目录下

#创建文件
touch Dockerfile
#编辑
vim Dockerfile

在Dockerfile中添加以下内容:

# 使用官方 Nginx 镜像作为基础镜像
FROM nginx:latest
# 将当前目录下的 SSL 证书和密钥复制到容器的 /etc/nginx/ssl 目录下
COPY ssl /etc/nginx/ssl
# 将当前目录下的 Nginx 配置文件复制到容器的 /etc/nginx/conf.d/ 目录下
COPY nginx.conf /etc/nginx/conf.d/

制作镜像:

docker build -t nginx-proxy .

STEP 04:运行容器

#运行容器并指定端口映射
docker run -d --name my-nginx-proxy -p 443:443 -p 80:80 nginx-proxy

查看容器运行情况:

dokcer ps

好了,这时全部步骤就已经完成了,此时输入域名便可以看见使用的是HTTPS协议了

LICENSED UNDER CC BY-NC-SA 4.0
Comment