此处省略申请阿里云的证书过程。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配置成功。