docker安装nginx支持ssl 实现https访问(完整版)

全文目录,一步到位

  • 1.前言简介
    • 1.1 专栏传送门
      • 1.1.1 本文简介
  • 2. docker安装nginx支持ssl
    • 2.0 准备ssl证书(例: 阿里云)
      • 2.0.1 配置域名解析
      • 2.0.2 找到数字证书管理服务并签发ssl证书
      • 2.0.3 选择默认证书 填写域名 创建
      • 2.0.4 提交审核, 签发成功
      • 2.0.5 解压并上传到宿主机ssl路径下
    • 2.1 安装docker(有跳过)
    • 2.2 linux的操作方式
      • 2.2.1 创建需要挂载的宿主机目录
      • 2.2.2 创建并启动nginx容器(普通版)
      • 2.2.3 容器复制nginx配置到宿主机
      • 2.2.4 删除nginx容器
      • 2.2.5 创建新nginx容器 配置ssl证书
      • 2.2.6 修改nginx.conf配置
    • 2.3 查看日志与容器方法
      • 2.3.1 查看容器日志
      • 2.3.2 检查目录挂载是否成功
      • 2.3.3 最终效果
  • 3. 文章的总结与预告
    • 3.1 本文总结


1.前言简介

1.1 专栏传送门

=> docker实用(安装/操作)专栏传送门 <=
=> linux普通方式安装nginx并支持ssl <=

1.1.1 本文简介

本文使用docker快速安装nginx 并支持ssl证书

  • 包含ssl证书如何签发
  • ssl证书下载
  • docker启动容器步骤
  • 启动注意事项

2. docker安装nginx支持ssl

2.0 准备ssl证书(例: 阿里云)

2.0.1 配置域名解析

在这里插入图片描述

2.0.2 找到数字证书管理服务并签发ssl证书

在这里插入图片描述

2.0.3 选择默认证书 填写域名 创建

数量用光了可以购买(操作错误删除也算一次)
在这里插入图片描述

2.0.4 提交审核, 签发成功

审核页面跳过
签发成功后点击下载 选择nginx
在这里插入图片描述

2.0.5 解压并上传到宿主机ssl路径下

2.2.1 中创建文件夹 找到ssl文件夹 放入即可
在这里插入图片描述

2.1 安装docker(有跳过)

=> 传送门: linux系统上安装docker

2.2 linux的操作方式

2.2.1 创建需要挂载的宿主机目录

mkdir -p /usr/local/src/docker/nginx/{conf,html,logs,ssl}

2.2.2 创建并启动nginx容器(普通版)

随意启动一个nginx容器, 用于复制里面配置文件

  • name: 容器名字
  • -p 宿主机:容器
  • -d 容器在后台运行
docker run --name nginx -p 80:80 -d nginx

2.2.3 容器复制nginx配置到宿主机

复制配置文件到宿主机路径 左是容器路径(docker) 右是宿主机路径(linux)

docker cp nginx:/etc/nginx/nginx.conf /usr/local/src/docker/nginx/conf/
docker cp nginx:/etc/nginx/conf.d /usr/local/src/docker/nginx

2.2.4 删除nginx容器

复制成功后,nginx容器删除

# 基础写法
docker stop nginx
docker rm nginx# 简化写法
docker rm -f nginx

2.2.5 创建新nginx容器 配置ssl证书

docker run --name nginx -p 80:80 -p 443:443 \
-v /usr/local/src/docker/nginx/html:/usr/share/nginx/html \
-v /usr/local/src/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf/ \
-v /usr/local/src/docker/nginx/conf.d:/etc/nginx/conf.d/ \
-v /usr/local/src/docker/nginx/logs:/var/log/nginx \
-v /usr/local/src/docker/nginx/ssl:/etc/nginx/ssl \
--privileged=true -d --restart=always nginx

参数解释

挂载到上面创建的路径下 左边是宿主机 右边是容器

  • - name: 容器名
  • - p: 映射端口: 容器端口
  • -v: 宿主机路径: 容器路径
  • --privileged=true: 使容器拥有root权限
  • -d : 后台运行
  • --restart=always: 自启动(docker启动后)
  • nginx: 指定镜像(没有会自动下载latest版本)

2.2.6 修改nginx.conf配置

ssl配置模板如下:

`(坑)特别注意: 配置路径必须是容器内的路径`
http {include       /etc/nginx/mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;include /etc/nginx/default.d/*.conf;server {listen 80;#填写绑定证书的域名server_name test.*.cn;#把http的域名请求转成https,相当于用户访问http也可以自动跳转到https,避免出现网页提示不安全return 301 https://$host$request_uri; }    server {listen  443 ssl;server_name  mkdd.aisce.net; #证书文件名称ssl_certificate_key /etc/nginx/ssl/test.*.cn.key;#私钥文件名称 .crt和.pem都可以用ssl_certificate /etc/nginx/ssl/test.*.cn.pem; ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;ssl_prefer_server_ciphers on;location / {root   /usr/share/nginx/html;try_files $uri $uri/ /index.html;index  index.html index.htm;}location /aaa/ {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_pass http://localhost:9666/;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
}

2.3 查看日志与容器方法

2.3.1 查看容器日志

cd /usr/local/src/docker/nginx/logs
docker container logs -f access.log
docker container logs -f error.log

2.3.2 检查目录挂载是否成功

进入容器控制台

  • 找到对应容器路径查看文件是否存在
  • 配置修改是否生效(基本都能生效, 不生效检查宿主机文件读写权限)
docker exec -it nginx bash

2.3.3 最终效果

在这里插入图片描述
[操作结束]


3. 文章的总结与预告

3.1 本文总结

买域名会赠送免费的ssl证书 可以测试用

  • 证书现在是三个月过期
  • 审核, 等待 签发 下载

nginx进行配置

  1. nginx.conf文件位置写容器路径 千万不要写宿主机路径
  2. 容器内也可以随意建立(mkdir)文件夹的 挂载目录对应上即可
  3. html文件夹完全可以不用, 可以参考(2-上条)

总之灵活使用 挂载的目的也是文件内容相互同步



@author: pingzhuyan
@description: ok
@year: 2024

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

FFmpeg常用API与示例(三)—— 音视频解码与编码

编解码层 1.解码 (1) 注册所有容器格式和 CODEC:av_register_all() (2) 打开文件:av_open_input_file() (3) 从文件中提取流信息:av_find_stream_info() (4) 穷举所有的流&#xff0c;查找其中种类为 CODEC_TYPE_VIDEO (5) 查找对应的解码器:avcodec_find_decoder() (6) …

解决电脑睡眠后,主机ping不通VMware虚拟机

文章目录 问题解决方法方法一方法二注意 问题 原因&#xff1a;电脑休眠一段时间&#xff0c;再次打开电脑就ping不通VMware虚拟机。 解决方法 方法一 重启电脑即可&#xff0c;凡是遇到电脑有毛病&#xff0c;重启能解决90%问题。但是重启电脑比较慢&#xff0c;而且重启…

Linux 磁盘分区工具 gdisk / fdisk

fdisk 是传统的 Linux 磁盘分区工具&#xff0c;磁盘容量有2T的大小限制&#xff1b;gdisk 又叫 GPT fdisk, 作为 fdisk 的升级版&#xff0c;主要使用的是GPT分区类型&#xff0c;用来划分容量大于2T的硬盘&#xff0c;本文介绍使用方法。 简介 早期的磁盘使用 fdisk 工具分区…

C——单链表

一.前言 我们在前面已经了解了链表中的双向链表&#xff0c;而我们在介绍链表分类的时候就说过常用的链表只有两种——双向带头循环链表和单向不带头不循环链表。下来我来介绍另一种常用的链表——单向不带头不循环链表也叫做单链表。不清楚链表分类的以及不了解双向链表的可以…

Prometheus-Operator:快速部署

1. 项目目标 &#xff08;1&#xff09;了解Prometheus-Operator的优势 &#xff08;2&#xff09;熟练掌握Prometheus-Operator部署 &#xff08;3&#xff09;操作Grafana对接Prometheus 2. 项目准备 2.1. 规划节点 主机名 主机IP 节点规划 Prometheus 主机IP Prom…

如何克服挑战?跨境电商平台开发中的关键挑战解析

在当今的数字化时代&#xff0c;跨境电商平台开发成为了许多企业所关注的焦点。然而&#xff0c;随之而来的是一系列挑战&#xff0c;需要克服才能确保项目成功推进。从法律合规、支付结算到物流运输&#xff0c;跨境电商平台开发中的挑战多而复杂。本文将针对跨境电商平台开发…

【Matlab】Matlab之美,抓紧来膜拜大神的创星之作(附2024Matlab教程+代码)

软件介绍 MATLAB是一款商业数学软件&#xff0c;用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境&#xff0c;主要包括MATLAB和Simulink两大部分&#xff0c;可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序…

福派斯鸭肉梨狗粮,让狗狗告别泪痕困扰!值得一试吗?

亲爱的宠友们&#xff0c;你们是不是也为自家狗狗的泪痕问题头疼不已呢&#xff1f;&#x1f914;今天我就来给大家聊聊福派斯鸭肉梨去泪痕狗粮&#xff0c;看看这款狗粮究竟怎么样&#xff0c;去泪痕效果好不好&#xff0c;以及值不值得入手哦&#xff01; 首先&#xff0c;我…

【MySQL】SQL基本知识点DDL(1)

目录 1.SQL分类&#xff1a; 2.DDL-数据库操作 3.DDL-表操作-创建 4.DDL-表操作-查询 5.DDL-表操作-数据类型 6.DDL-表操作-修改 1.SQL分类&#xff1a; 2.DDL-数据库操作 3.DDL-表操作-创建 注意&#xff1a;里面的符号全部要切换为英文状态 4.DDL-表操作-查询 5.DDL…

如何内网穿透,远程访问内网设备

文章目录 0.前言1.准备工作2.内网穿透原理3.配置公网服务器的frp5.配置访问内网主机6.配置win10的远程桌面访问&#xff08;win11类似&#xff09;7.参考资料 0.前言 最近想研究一些新东西&#xff0c;公司的机器不敢乱搞&#xff0c;公司测试的服务器安装软件太多&#xff0c…

【送书福利第六期】Java开发的150多个坑,你踩过几个?(文末送书)

文章目录 做Java开发别掉坑里还不知道 程序员为什么会掉到坑里却不自知&#xff1f;第一是意识不到坑的存在。第二是有些 bug 或问题只在特定情况下暴露。第三是变化不明显的性能问题。 《Java开发坑点解析&#xff1a;从根因分析到最佳实践》Java 开发完美避坑指南结语 &#…

zblog中用户中心-邀请码注册插件的导出功能补充

自己加了一个导出未使用的邀请码功能&#xff0c;可惜我不是入驻作者&#xff0c;没有权限发布&#xff0c;之前被一条大河拒了&#xff0c;他说我抄他代码&#xff0c;不给我过审还冷嘲热讽&#xff0c;我一气之下&#xff0c;就没继续申请了&#xff0c;话说我是专业搞java开…

中国地图(2024版审图号地图)和地图变化说明

2024版shp格式审图号地图预览图&#xff1a; 新版中国地图的变化&#xff08;简述&#xff09; 国土面积的增加&#xff1a;新版中国地图显示&#xff0c;中国的国土面积从960万平方公里增加到1045万平方公里&#xff0c;增加了85万平方公里。 九段线变为十段线&#xff1a;…

RFID工业读写器在危化品储存管理的优势有哪些?

在化学品和危险品储存管理领域&#xff0c;传统的管理方式通常存在一些痛点和挑战&#xff1a;化学品和危险品的管理主要依赖于人工记录和监控&#xff0c;容易出现数据不准确、遗漏、混淆等问题&#xff0c;导致安全隐患和管理困难。化学品和危险品的存储和管理涉及到一系列安…

#04 构建您的第一个神经网络:PyTorch入门指南

文章目录 前言理论基础神经网络层的组成前向传播与反向传播 神经网络设计步骤1&#xff1a;准备数据集步骤2&#xff1a;构建模型步骤3&#xff1a;定义损失函数和优化器步骤4&#xff1a;训练模型步骤5&#xff1a;评估模型结论 前言 在过去的几天里&#xff0c;我们深入了解了…

InLine Chat功能优化对标Github Copilot,CodeGeeX带来更高效、更直观的编程体验!

VSCode中的CodeGeeX 插件上线InLine Chat功能后&#xff0c;收到不少用户的反馈&#xff0c;大家对行内交互编程这一功能非常感兴趣。近期我们针对这个功能再次进行了深度优化&#xff0c;今天详细介绍已经在VSCode插件v2.8.0版本上线的 CodeGeeX InLine Chat功能&#xff0c;以…

C++ 多态的相关问题

目录 1. 第一题 2. 第二题 3. inline 函数可以是虚函数吗 4. 静态成员函数可以是虚函数吗 5. 构造函数可以是虚函数吗 6. 析构函数可以是虚函数吗 7. 拷贝构造和赋值运算符重载可以是虚函数吗 8. 对象访问普通函数快还是访问虚函数快 9. 虚函数表是什么阶段生成的&…

SQL的命令

目录 创建用户 ​编辑 DDL数据库操作 查询 创建 使用 删除 创建数据库表 在表中修改字段 查询表 DML 添加数据 修改 删除 DQL 查询 创建用户 DDL数据库操作 查询 show databases; 创建 权限问题导致无法创建&#xff0c;连接root修改用户权限 CREATE DATABAS…

企业微信创建应用(一)

登录到企业微信后台管理(https://work.weixin.qq.com/)进入自建应用(应用管理-应用-创建应用) 3.查看参数AgentId和 Secret 4.企业微信查看效果