此处省略申请阿里云的证书过程。CenterOs7 nginx 代理的过程请参考 >>>>【参考】。看参考,熟悉配置ssl的流程。
此处省略安装docker和使用docker 安装 Nginx。
至于部署springboot jar 项目,把jar项目制作成docker 镜像的过程请参考 >>>>【将springboot jar 项目制作成docker镜像】。
前提:
springboot jar项目创建成docker镜像后能正常访问;
docker中安装了Nginx
服务器打开项目所需要的端口
服务器打开了支持https的443端口
已经申请的阿里云免费的ssl证书文件.这里主要要看以上的参考。、
步骤:
1.首先说明:docker 安装的Nginx的文件基础路径为:/opt/nginx/ 。运行安装的nginx 镜像。运行springboot jar项目镜像。
2.在服务器的某个地方创建一个文件夹,名称为:nginx。专门用来存放docker中的配置文件。此处我创建在根路径 / 下。
3.在此文件中创建一个名为:cert 的文件夹,把在阿里云中下载的Nginx的证书文件解压上传到该文件夹中。
4.使用docker命令将安装在docker中的nginx默认配置文件复制出来。放到conf文件夹中。
docker cp ngixn:/etc/nginx/nginx.conf /nginx/nginx.conf格式:docker cp 运行镜像的名称或id:/etc/nginx/nginx.conf 复制到的目标地址
5.将此文件中按照配置Nginx ssl的方式进行修改。
我的配置如下:
#user nobody;
worker_processes 1;error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024;
}http {include mime.types;default_type application/octet-stream;upstream thezone3{server 主机ip:8080;}sendfile on;keepalive_timeout 65;server {listen 80;server_name http://主机ip:8080;location / {rewrite ^(.*)$ https://$host$1 permanent;root html;index index.html index.htm;}location = /50x.html {root html;}}# HTTPS server#server {listen 443 ssl;#此处填写的是要在浏览器中访问的域名server_name 访问的域名;ssl on;ssl_certificate /etc/nginx/cert/证书名.pem;ssl_certificate_key /etc/nginx/cert/证书名.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;rewrite ^(.*)$ https://$host$1 permanent;location / {#此处的参数是运行springboot jar项目镜像的端口以及主机的IP地址proxy_pass http://服务器ip:项目端口;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;proxy_set_header X-NginX-Proxy true;proxy_redirect off;}}
}
6.配置完成后将文件上传到docker Nginx中。
docker cp /nginx/nginx.conf Nginx镜像名称或id:/etc/nginx/nginx.conf
7.使用命令重启docker Nginx:
#查看当前的镜像
docker ps -a #停止Nginx镜像
docker stop Nginx镜像id或名称#启动Nginx镜像
docker start Nginx镜像id或名称
8.查看启动情况:
docker ps -a
结果 :
若镜像中运行状态【上图黄色部分】为:Exited 则说明未启动成功。
使用命令查看日志:检查报错信息。
docker logs Nginx镜像的id
如报错为配置文件中找不到日志文件:error_log logs/error.log;
则需要创建一个文件夹名为:logs 并在其中创建文件名为:error.log 的文件。
然后使用命令将此文件夹上传到镜像中,重启镜像。
docker cp /logs 镜像名或id:/etc/nginx/
运行镜像启动成功后访问配置文件中配置的访问地址。即可。
如下:
加锁则说明ssl配置成功。