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

相关推荐
Java水解3 小时前
Nginx 配置文件完全指南
后端·nginx
firstacui3 小时前
Keepalived+nginx+tomcat
nginx·tomcat·firefox
last demo4 小时前
docker镜像
运维·docker·容器
L1624764 小时前
Prometheus 监控 K8s 集群全指南(适配 K8s 特性 + 实操部署)
docker·容器·kubernetes
阿方索5 小时前
Kubernetes 1.28 高可用集群安装指南(Docker 运行时)
docker·容器·kubernetes
oMcLin5 小时前
如何在CentOS 7.9上配置并优化高并发视频流平台,利用Nginx和RTMP模块确保低延迟流媒体传输?
linux·nginx·centos
last demo6 小时前
docker基础
运维·docker·容器·eureka
幽影相随6 小时前
Docker 环境下的 Nginx 负载均衡(vllm)
nginx·负载均衡
咕叽咕叽的汪7 小时前
Es/Kibana7.17.9中数据迁移到openSearch3.4.0【DockerDesktop模拟】
运维·spring boot·elasticsearch·docker·容器·devops