STEP 01:上传证书至服务器
选定一个目录 ,用于存放SSL证书(这里以/home目录为例)
#切换目录
cd /home
#创建文件夹
mkdir ssl
将证书文件(后缀为pem和key)上传至创建的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协议了