docker-compose在阿里云服务器上部署https所踩的各种坑(已成功部署)

前言

购买服务器,申请域名,申请证书,下载nginx证书,这些操作我就不说了,百度一大把,我只说一下部署中碰到的问题

问题

我们是docker-compose上部署的后台前台环境,配置https证书,需要在nginx上部署,但是如果在nginx上部署,不一定成功,还需要在docker-compose.yml里配置端口,然后还要开启nginx网络配置,要不然监听不到443端口,还有配置防火墙,打开443端口,反正挺复杂的

标题

首先,要把证书放对位置,一定要看nginx错误日志,很多错误都能在里边看到,我就是因为放错了位置,导致不成功

 server{listen 443 ssl;#对应你的域名server_name app.bravechip.cn;ssl_certificate  /usr/share/nginx/html/cert/app.bravechip.cn.pem;ssl_certificate_key   /usr/share/nginx/html/cert/app.bravechip.cn.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;#表示优先使用服务端加密套件。默认开启ssl_prefer_server_ciphers on;location / {root   /usr/share/nginx/html/ring;# root   html;index  index.html index.htm;try_files $uri $uri/ /index.html;#需要指向下面的@router否则会出现vue的路由在nginx中刷新出现404,两种写法,这里需要在下边配置router# try_files $uri $uri/ @router;}location /ChipletRing {alias   /usr/share/nginx/html/RingQRCode;# root   html;index  index.html index.htm;try_files $uri $uri/ /ChipletRing/index.html;}                 }server {listen       80;server_name  app.bravechip.cn;
#autoindex    on; #启用目录浏览rewrite ^(.*)$ https://$host$1;location / {root   /usr/share/nginx/html/ring;# root   html;index  index.html index.htm;try_files $uri $uri/ /index.html;}location /ChipletRing {alias   /usr/share/nginx/html/RingQRCode;# root   html;index  index.html index.htm;try_files $uri $uri/ /ChipletRing/index.html;}# location @router{#    rewrite ^.*$ /index.html last;#}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}
}
}

这样配置好,你用netstat -ano ,会发现,nginx的端口监听有可能是空的,没有监听80和443,现在就要配置docker-compose.yml

#version: "3.9"
services:redis:image: bitnami/redis:7.2.2hostname: rediscontainer_name: redisrestart: always     # 开机自动重启privileged: trueports:- 6379:6379environment:REDIS_PASSWORD: xxxxTZ: Asia/Shanghaivolumes:- type: volumesource: redis-datatarget: /bitnami/redis/datavolume: { }mysql:image: mysql:latesthostname: mysqlrestart: alwaysprivileged: true #设置容器的权限为rootcontainer_name: mysqlvolumes:- /root/mysql/log:/var/log/mysql- /root/mysql/data:/var/lib/mysql- /root/mysql/conf.d:/etc/mysql/conf.d- /etc/localtime:/etc/localtime:ro# - ./my.cnf:/etc/mysql/my.cnfenvironment:MYSQL_ROOT_PASSWORD: xxxxports:- "3306:3306"nginx:image: nginx:latest    # 镜像名称container_name: nginx     # 容器名字restart: always     # 开机自动重启ports:- 80:80- 443:443privileged: truenetworks:- webnetvolumes:   # 目录映射(宿主机:容器内)- /root/nginx/nginx.conf:/etc/nginx/nginx.conf- /root/nginx/conf.d/:/etc/nginx/conf.d/- /root/nginx/html/:/usr/share/nginx/html/- /root/nginx/logs/:/var/log/nginx/ring:image: ring:1.0.0container_name: ring     # 容器名字restart: always     # 开机自动重启privileged: truedepends_on:- mysql- redisports:- 8080:8080environment:MYSQL_USER_NAME: rootMYSQL_PWD: xxxxMYSQL_DB_NAME: ring_xxxMYSQL_HOST: xxxxMYSQL_PORT: 3306REDIS_HOST: xxxxREDIS_PORT: 6379REDIS_PWD: xxxSERVER_PORT: 8080UPLOAD_PATH: /home/ring/uploadPath/volumes:- /root/ring/uploadPath/:/home/ring/uploadPath/
volumes:redis-data:name: media_service_redis-data
networks:webnet:driver: bridge

重点是两个,第一,nginx配置80和443端口,第二是配置networks
然后是打开防火墙,centos7上怎么打开防火墙,可以看这篇文章
nginx配置阿里云https的坑
以下文章是一些参考:
阿里云nginx配置https踩坑(配置完后访问显示无法访问此网站)
Linux防火墙报错:Failed to start firewalld.service Unit is masked

FirewallD is not running 原因与解决方法

解决 WARNING: Published ports are discarded when using host network mode 问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/59159.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt_day3_信号槽

目录 信号槽 1. 概念 2. 函数原型 3. 连接方式 3.1 自带信号 → 自带槽 3.2 自带信号 → 自定义槽 3.3 自定义信号 4. 信号槽传参 5. 对应关系 5.1 一对多 5.2 多对一 信号槽 1. 概念 之前的程序界面只能看,不能交互,信号槽可以让界面进行人机…

《ElementPlus 与 ElementUI 差异集合》Icon 图标 More 差异说明

参考 《element plus 使用 icon 图标(两种方式)》使用 icon 升级 Vue2 升级 Vue3 项目时,遇到命名时的实心与空心点差异! ElementUI: 实心是 el-icon-more空心是 el-icon-more-outline ElementPlus: 实心是 el-icon-more-fill…

RWKV 通过几万 token 的 CoT 解决几乎 100% 的数独问题(采用 29M 参数的小模型)

RWKV 做 CoT 特别有优势,因为推理速度和显存占用与上下文无关。即使做几百万 token 的 CoT 也不会变慢或额外消耗显存。 RWKV 社区开发者 Jellyfish042 训练了一个用于解决数独谜题的专用 RWKV 模型 Sudoku-RWKV ,项目的训练代码和数据制作脚本均已开源…

postgres+timescaledb--离线安装,centos7.9

操作系统是centos7.9,使用的hper-V,安装的虚拟机环境,安装好操作系统之后,让系统不连外网后直接按下方操作安装。 方式1,使用压缩包,复杂一点。(第一种方式暂时没有安装timescaledb) 装备安装…

MyBatis xml 文件中 SQL 语句的小于号未转义导致报错

问题现象 在 MyBatis 的 xml 文件中添加了一个 SQL 语句 <select id"countXxx" resultType"int">select count(*) from t1 where count < 3 </select>启动 Spring Boot 应用程序后报错&#xff1a; Caused by: org.apache.ibatis.builde…

深入剖析输入URL按下回车,浏览器做了什么

DNS 查询 首先,是去寻找页面资源的位置。如果导航到https://example.com, 假设HTML页面被定位到IP地址为93.184.216.34 的服务器。如果以前没有访问过这个网站&#xff0c;就需要进行DNS查询。 浏览器向域名服务器发起DNS查询请求&#xff0c;最终得到一个IP地址。第一次请求…

ceph介绍和搭建

1 为什么要使用ceph存储 什么是对象存储&#xff1f; 对象存储并没有向文件系统那样划分为元数据区域和数据区域&#xff0c;而是按照不同的对象进行存储&#xff0c;而且每个对象内部维护着元数据和数据区域。因此每个对象都有自己独立的管理格式。 对象存储优点&#xff1a…

这些场景不适合用Selenium自动化!看看你踩过哪些坑?

Selenium是自动化测试中的一大主力工具&#xff0c;其强大的网页UI自动化能力&#xff0c;让测试人员可以轻松模拟用户操作并验证系统行为。然而&#xff0c;Selenium并非万能&#xff0c;尤其是在某些特定场景下&#xff0c;可能并不适合用来自动化测试。本文将介绍Selenium不…

AI大模型在尽职调查中的应用场景与客户案例

应用场景 1. 企业IPO尽职调查中的文档处理与合规审查 在券商投行进行企业IPO尽职调查过程中&#xff0c;企业需要提交大量的财务报表、历史沿革文件、法律合同等资料。这些文件涉及多个部门&#xff0c;往往存在信息分散、合规性复杂、数据量庞大等问题。思通数科的AI能力平…

[C++]内联函数和nullptr

> &#x1f343; 本系列为初阶C的内容&#xff0c;如果感兴趣&#xff0c;欢迎订阅&#x1f6a9; > &#x1f38a;个人主页:[小编的个人主页])小编的个人主页 > &#x1f380; &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐文章 > ✌️ &#x1f91e; &#x1…

工业4.0时代下的人工智能新发展

摘要&#xff1a;随着德国工业4.0时代以及中国制造2025的提出&#xff0c;工业智能化的改革的时代正逐渐到来&#xff0c;然而我国整体工业水平仍然处于工业2.0水平。围绕工业4.0中智能工厂、智能生产、智能物流这三大主题&#xff0c;结合国内外研究现状&#xff0c;对人工智能…

一步一步从asp.net core mvc中访问asp.net core WebApi

"从asp.net core mvc中访问asp.net core WebApi"看到这个标题是不是觉得很绕口啊&#xff0c;但的确就是要讲一讲这样的访问。前面我们介绍了微信小程序访问asp.net core webapi(感兴趣的童鞋可以看看前面的博文有关WEBAPI的搭建)&#xff0c;这里我们重点不关心如何…

【Python】关于python中overload装饰器详解

Python不像C、Java等语言可以进行函数的重载。Python是不可以进行函数重载的。下面的例子&#xff0c;虽然我们定义了三个test函数&#xff0c;但是在局部命名空间下&#xff0c;只有一个test函数&#xff0c;就是最有一个&#xff0c;也就是说最后一个test覆盖了前两个test。 …

JVM学习之路(5)垃圾回收

目录 Java垃圾回收 方法区回收 方法区的回收 堆内存回收 引用计数法和可达性分析算法 查看GC Root 五种对象引用 软引用 ​编辑 弱引用 虚引用和终结器引用 垃圾回收算法&#xff1a; 垃圾回收算法的历史和分类 垃圾回收算法的评价标准 标记清除算法 复制算法 标记整理算法 分代…

ubuntu 20.04 NVIDIA驱动、cuda、cuDNN安装

1. NVIDIA驱动 系统设置->软件和更新->附加驱动->选择NVIDIA驱动->应用更改。该界面会自动根据电脑上的GPU显示推荐的NVIDIA显卡驱动。 运行nvidia-smi: NVIDIA-SMI has failed because it couldnt communicate with the NVIDIA driver. Make sure that the lat…

Ubuntu18.04+ROS环境+moveit UR5机械臂仿真

目录 仿真环境&#xff1a; 1.下载Universal Robots机器人功能包 2.运行 Gazebo中的仿真模型 3.运行moveit运动规划 4.运行rviz并进行轨迹规划 仿真环境&#xff1a; 本文使用版本&#xff1a;Ubuntu18.04 ros版本&#xff1a;ros-melodic-desktop-full&#xff0c;安装…

C++11新特性(二)

目录 一、C11的{} 1.初始化列表 2.initializer_list 二、可变参数模版 1.语法与原理 2.包扩展 3.empalce接口 三、新的类功能 四、lambda 1.语法 2.捕捉列表 3.原理 五、句装器 1.function 2.bind 一、C11的{} 1.初始化列表 C11以后想统⼀初始化⽅式&#xff0…

Flutter 小技巧之 Shader 实现酷炫的粒子动画

在之前的《不一样的思路实现炫酷 3D 翻页折叠动画》我们其实介绍过&#xff1a;如何使用 Shader 去实现一个 3D 的翻页效果&#xff0c;具体就是使用 Flutter 在 3.7 开始提供 Fragment Shader API &#xff0c;因为每个像素都会过 Fragment Shader &#xff0c;所以我们可以通…

实现3D热力图

实现思路 首先是需要用canvas绘制一个2D的热力图&#xff0c;如果你还不会&#xff0c;请看json绘制热力图。使用Threejs中的canvas贴图&#xff0c;将贴图贴在PlaneGeometry平面上。使用着色器材质&#xff0c;更具json中的数据让平面模型 拔地而起。使用Threejs内置的TWEEN&…

2. Sharding-JDBC广播表和绑定表操作

1. 广播表实战 ⼴播表概念 1. 指所有的分⽚数据源中都存在的表&#xff0c;表结构和表中的数据在每个数据库中均完全⼀致。 2. 适⽤于数据量不⼤且需要与海量数据的表进⾏关联查询的场景。 3. 例如&#xff1a;字典表、配置表。注意 1. 分库分表中间件&#xff0c;对应的数据…