docker镜像发布的应用程序,其配置https的流程

1、docker启动命令 :将443端口映射出来,其中注意 /root/app/nginx/ai-ssl(证书存放路径)、/data/app/ai-nginx/nginx.conf(nginx的配置路径)

docker run -d --restart=always -p 12324:80 -p 8443:443 -v /root/app/nginx/ai-ssl:/etc/ssl/agent -v /data/app/ai-nginx/nginx.conf:/etc/nginx/nginx.conf registry.cn-hangzhou.aliyuncs.com/suqinghua/ai-web:0.0.1
2、配置 /data/app/ai-nginx/nginx.conf文件,暴露443端口:

复制代码
server {
        listen       443 ssl;
        server_name  localhost;

        add_header X-Frame-Options DENY;  # 可以根据需求选择 DENY、SAMEORIGIN 或 ALLOW-FROM

        ssl_certificate /etc/ssl/agent/ca.crt;  #证书路径及文件名
        ssl_certificate_key /etc/ssl/agent/ca.key; #证书路径及文件名

        ssl_session_timeout  5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;

        add_header Permissions-Policy "microphone=*" always;
        #add_header Feature-Policy "microphone *" always;

        location / {
            root   /home/nginx/www/dist/digital-web;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

        location /prod-api/{
            proxy_cache off; # 转发流式数据
            proxy_buffering off;
            chunked_transfer_encoding on;
            tcp_nopush on;
            tcp_nodelay on;
            keepalive_timeout 300;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Scheme $scheme;  # 关键:透传HTTPS协议
            proxy_pass http://ip:38081/;
        }

        location /profile/{
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Scheme $scheme;  # 关键:透传HTTPS协议
            proxy_pass http://ip:38081/profile/;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

3、将证书放置 /root/app/nginx/ai-ssl路径下,如下:

bash 复制代码
root@ssdmx62:~/app/nginx/aihd-ssl# ls
ca.crt  ca.key

需要注意的是,文件名要与nginx中的文件名对应(下列代码出现在步骤二中的nginx.conf文件):

bash 复制代码
    ssl_certificate /etc/ssl/agent/ca.crt;
    ssl_certificate_key /etc/ssl/agent/ca.key;

4、下面就可以通过域名:8443访问应用。

相关推荐
Molesidy1 小时前
【Docker】基于Ubuntu的Docker的日常使用方法
nginx·ubuntu·docker
Broken Arrows2 小时前
k8s学习(一)——kubernetes重要基础概念概述
学习·容器·kubernetes
Lin_Aries_04214 小时前
基于 CI/CD 平台将应用程序自动部署到 Kubernetes 集群
运维·ci/cd·docker·云原生·容器·kubernetes·jenkins
神秘人X7079 小时前
Docker 镜像结构详解
运维·docker·容器
编码追梦人17 小时前
探索 Docker/K8s 部署 MySQL 的创新实践与优化技巧
mysql·docker·kubernetes
fire-flyer18 小时前
docker 跨架构兼容
docker·容器
缘的猿18 小时前
Kubernetes 中 ETCD 数据备份与恢复完整指南
容器·kubernetes·etcd
bestcxx19 小时前
(二十七)、k8s 部署前端项目
前端·容器·kubernetes
你的人类朋友19 小时前
HTTP为什么不安全?
安全·http·https
白白白白熊爱吃麦当劳19 小时前
k8s知识点总结5
docker·容器·kubernetes