当前位置: 代码迷 >> 综合 >> CenterOS7 Docker配置阿里云ssl到nginx中,并代理springboot jar 项目
  详细解决方案

CenterOS7 Docker配置阿里云ssl到nginx中,并代理springboot jar 项目

热度:81   发布时间:2023-12-15 14:54:16.0

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