docker镜像的nginx配置证书SSL,单独配置单个localtion使用证书,其他nginx配置不影响

docker镜像的nginx配置证书SSL,单独配置单个localtion使用证书,其他nginx配置不影响

原本的地址是http://test.dev.net/mobile

想要的效果是https://test.dev.net/mobile

但是其他地址还是http://test.dev.net/smart_mobile或者http://test.dev.net/不变

一、原本的nginx配置

javascript 复制代码
server {
    listen       80;
    server_name  test.dev.net;
    client_max_body_size 500m;
    #access_log  /var/log/nginx/host.access.log  main;
    
    location / {
           # 不缓存html,防止程序更新后缓存继续生效
      if ($request_filename ~* .*\.(?:htm|html)$) {
         add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
         access_log on;
      }
      root   /etc/nginx/vue_page/boyue/dist;
      try_files $uri $uri/ /index.html;
      index index.html index.htm;
   }
	location /smart_mobile {
             add_header 'Access-Control-Allow-Origin' '*';
                 add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
                 alias    /etc/nginx/vue_page/boyue/smart_mobile;
                 try_files $uri $uri/ /boyue/index.html;
                 index   index.html;
        }

    location /mobile {
         add_header 'Access-Control-Allow-Origin' '*';
         add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
         alias  /etc/nginx/vue_page/boyue/mobile;
         try_files $uri $uri/ /boyue/index.html;
         index   index.html;
    }
}   

现在需要修改/mobile模块使用https来访问,但是不影响其他地址。

二、修改原本server块,下面再增加一个server块写ssl证书配置

javascript 复制代码
server {
    listen 443 ssl;
    server_name test.dev.net;

    # 全局 SSL 配置(必须)
    ssl_certificate /etc/nginx/ssl/fkp.pem;
    ssl_certificate_key /etc/nginx/ssl/fkp.key;

    # SSL 配置
    #ssl_protocols TLSv1.2 TLSv1.3;
    #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384;
    #ssl_prefer_server_ciphers off;

    # 默认所有 443 端口的请求都需要 SSL

    # 只有这个 location 实际处理请求
    location /mobile {

        # 你的应用配置
         add_header 'Access-Control-Allow-Origin' '*';
         add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
         alias  /etc/nginx/vue_page/boyue/mobile;
         try_files $uri $uri/ /boyue/index.html;
         index   index.html;
    }

}

只要生成证书后配置证书地址即可。

实际配置中遇到的错误:因为用到了docker镜像配置nginx,导致出现端口只映射了80,未映射443端口,所以配置完效果未出现

原始nginx镜像:

最后增加了个新的nginx的docker镜像。为什么新加,因为不想影响旧nginx的运行,

新增的nginx镜像:

新增docker命令如下:主要映射nginx配置文件目录、ssl证书目录和前端包的目录

javascript 复制代码
docker run -d   
--name nginx-ssl   
-p 443:443   
-v /home/zxd/docker_mounts/nginx/nginx.conf:/etc/nginx/nginx.conf   
-v /home/zxd/docker_mounts/nginx/conf.d:/etc/nginx/conf.d   
-v /home/zxd/docker_mounts/nginx/ssl:/etc/nginx/ssl   
-v /home/zxd/docker_mounts/nginx/vue_page:/etc/nginx/vue_page   
nginx:latest

注意:ssl证书获取方式直接网上找就行,这里不做标注了

相关推荐
小敬爱吃饭几秒前
Ragflow Docker部署及问题解决方案(界面为Welcome to nginx,ragflow上传文件失败,Docker中的ragflow-cpu-1一直重启)
人工智能·python·nginx·docker·语言模型·容器·数据挖掘
木子欢儿28 分钟前
Docker Hub 镜像发布指南
java·spring cloud·docker·容器·eureka
coppher2 小时前
Ubuntu 22.04 amd64 离线安装 Docker 完整教程
linux·docker
bloglin999994 小时前
docker logs 如何一直监听日志输出
运维·docker·容器
龙卷风卷云5 小时前
【BUG】Nginx使用upstream后端接口报 400
运维·nginx·bug
说实话起个名字真难啊5 小时前
Docker 入门之网络基础
网络·docker·php
❀͜͡傀儡师5 小时前
使用 Docker 部署 Neko 自托管虚拟浏览器(Firefox)
docker·容器·firefox
Java面试题总结5 小时前
Nginx 配置笔记
运维·笔记·nginx
0xDevNull6 小时前
Linux Docker 安装与使用详细教程
linux·运维·docker
工具罗某人6 小时前
docker compose 部署MySQL InnoDB Cluster + Router 高可用集群-亲测可用
mysql·docker·容器