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证书获取方式直接网上找就行,这里不做标注了

相关推荐
还是大剑师兰特3 天前
解决nginx错误:http://localhost:7000正常,http://localhost:7000/map 报错404
nginx·大剑师
分布式存储与RustFS3 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
玉&心3 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing3 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
guo_wen_qiang3 天前
上传本地镜像到harbor中
docker·容器·持续部署
羑悻的小杀马特3 天前
Dockerfile 全景指南:从入门编写dockerfile到生产环境镜像优化实战,一步步带你从啃透制作指令到镜像制作落地!
docker·dockerfile·镜像制作
BianHuanShiZhe3 天前
docker常见命令
docker
正经教主3 天前
【FDE系列】阶段2:Day 43:Docker Compose — 多容器一键编排
人工智能·docker·fde
PC2005-cloud3 天前
Nginx 防盗链配置实战:用 referer 模块保护网站静态资源
nginx
忆~遂愿3 天前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器