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. 概念 之前的程序界面只能看,不能交互,信号槽可以让界面进行人机…

lua入门教程:math

在Lua中,math库是一个非常重要的内置库,它提供了许多用于数学计算的函数。这些函数可以处理各种数学运算,包括基本的算术运算、三角函数、对数函数、随机数生成等。结合你之前提到的Lua中的数字遵循IEEE 754双精度浮点标准,我们可…

UI架构解说

UI(用户界面,User Interface) 是指用户与软件或硬件系统进行交互的界面。 它是用户与系统之间的桥梁,允许用户通过视觉元素、交互组件和反馈机制来操作和控制应用程序或设备。 UI 设计的目标是提供直观、易用和愉悦的用户体验&a…

《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 ,项目的训练代码和数据制作脚本均已开源…

上海市计算机学会竞赛平台2024年11月月赛丙组

题目描述 在一个棋盘上,有两颗棋子,一颗棋子在第 aa 行第 bb 列,另一个颗棋子在第 xx 行第 yy 列。 每一步,可以选择一个棋子沿行方向移动一个单位,或沿列方向移动一个单位,或同时沿行方向及列方向各移动…

【异质图学习】异构图神经网络中的自监督学习:基于语义强度和特征相似度的对比学习

【异质图学习】异构图神经网络中的自监督学习:基于语义强度和特征相似度的对比学习 简介:本文探讨了异构图神经网络中自监督学习的应用,特别是基于语义强度和特征相似度的对比学习技术。通过对比学习,模型能够从无标签数据中学习…

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地址。第一次请求…

Hutool-Java工具库

日期时间 1、DateUtil 获取当前时间 import cn.hutool.core.date.DateUtil;import java.util.Calendar; import java.util.Date; //当前时间字符串&#xff0c;格式&#xff1a;yyyy-MM-dd HH:mm:ssDate date DateUtil.date();Date date2 DateUtil.date(Calendar.getInstan…

ceph介绍和搭建

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

BootStrap复选框多选,页面初始化选中处理

以isExecuted字段为例数据库设置为varchar类型 新增页面 <div class"row"><div class"col-sm-6"><div class"form-group"><label class"col-sm-4 control-label">部门协调&#xff1a;</label><di…

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

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

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

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

react-router-dom 库作用

react-router-dom是一个用于在 React 应用中实现路由功能的重要库 一、实现页面导航 1. 声明式路由定义 1.1 基本原理 使用react-router-dom可以在代码中直接定义一个路由规则&#xff0c;如从/home路径导航到Home组件。 1.2 代码示例 Router 路由根容器&#xff0c;Rout…

[C++]内联函数和nullptr

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

15分钟学 Go 实战项目三 : 实时聊天室(学习WebSocket并发处理)

实时聊天室&#xff1a;学习WebSocket并发处理 目标概述 在本项目中&#xff0c;我们将创建一个实时聊天室&#xff0c;使用Go语言和WebSocket来处理并发消息交流。这将帮助你深入理解WebSocket协议的工作原理以及如何在Go中实现并发处理。 1. 项目需求 功能需求 用户可以…

thinkphp6 使用workerman扩展开发tcp应用

代码 <?phpnamespace app\shop\controller;use think\worker\Server;class Tcp extends Server {protected $socket tcp://127.0.0.1:12345;protected $option [name > "order_tcp",count > 1,pidFile > worker.pid, // daemonize > true,…

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

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