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://www.mzph.cn/diannao/10026.shtml

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

相关文章

异常处理/__LINE__ 与 __FILE__ 宏在调试和异常处理中的高级使用

文章目录 概述痛点分析_LINE_ 代码所在行号_LINE_ 直接转为字符串_LINE_ 作为整型数据使用_LINE_标记宏函数的调用位置 _FILE_ 代码所在文件名简单实验不期望 _FILE_ 宏代表全路径 assert 使用了 _FILE_ 和 _LINE_借助TLS技术小结 概述 _LINE_和_FILE_是C/C中的预定义宏&#…

HarmonyOS开发案例:【生活健康app之编写通用工具类】(5)

本节将介绍日志打印、时间换算等通用工具类的编写和使用&#xff0c;工具类可以简化应用代码编写和业务流程处理。 日志类 日志类Logger旨在提供一个全局的日志打印、日志管理的地方&#xff0c;既可以规范整个应用的日志打印&#xff0c;也方便日后对日志工具类进行修改&…

利用106短信群发平台能否提升沟通效率?

利用106短信群发平台确实能够显著提升沟通效率&#xff0c;具体体现在以下几个方面&#xff1a; 1.快速传递信息&#xff1a;106短信群发平台能够实现信息的快速传递。一旦设置好发送内容和接收群体&#xff0c;短信便能在瞬间发送至大量用户。这种即时性确保了信息的迅速传达…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-15.4讲 GPIO中断实验-IRQ中断服务函数详解

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

java对象互换工具类

1:将Object类型转成json字符串 /*** 将对象转为字符串* param obj* return*/public static String toString(Object obj) {if(obj null) {return null;}if ("".equals(obj.toString())) {return null;}if (obj instanceof String) {return obj.toString();}try {Ob…

Spring Cloud Gateway 11种断言工厂

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 Spring Cloud Gateway路由匹配是Spring WebFlux基础功能的一部分,在Spri…

你认识edge吗,edge是做什么的

简介 Microsoft Edge&#xff08;研发代号为Project Spartan&#xff0c;又译作微软边缘浏览器&#xff0c;Edge浏览器&#xff09;是一个由微软研发的基于Chromium开源项目及其他开源软件的网页浏览器&#xff0c;于2015年1月21日公布&#xff0c;2015年3月30日公开发布第一个…

pyqt曲线轨迹运动

pyqt曲线轨迹运动 pyqt QPropertyAnimation介绍曲线轨迹运动代码 pyqt QPropertyAnimation介绍 QPropertyAnimation 是 PyQt中的一个类&#xff0c;它用于对 Qt 对象的属性进行动画处理。通过使用 QPropertyAnimation&#xff0c;你可以平滑地改变一个对象的属性值&#xff0c…

闭散列哈希表

一、什么是 哈希 &#xff1f; 1.1 哈希概念 与 哈希冲突 在正式介绍闭散列哈希之前&#xff0c;我们需要明确 哈希 的概念。 哈希 &#xff1a;构造一种数据存储结构&#xff0c;通过函数 HashFunc() &#xff0c;使 元素的存储位置 与 其对应的键值 建立一一映射关系&…

国产开源物联网操作系统

软件介绍 RT-Thread是一个开源、中立、社区化发展的物联网操作系统&#xff0c;采用C语言编写&#xff0c;具有易移植的特性。该项目提供完整版和Nano版以满足不同设备的资源需求。 功能特点 1.内核层 RT-Thread内核包括多线程调度、信号量、邮箱、消息队列、内存管理、定时器…

JVM基础之垃圾回收

垃圾回收 1. Base 内存泄漏&#xff1a;不再使用的对象在系统中未被回收 内存溢出&#xff1a;内存泄漏的积累 手动触发垃圾回收&#xff1a;System.gc(),该方法不一定会立即回收垃圾&#xff0c;仅仅是向JVM发送一个垃圾回收请求&#xff0c;具体是否需要垃圾回收由JVM自行…

怎么找回回收站里删除的XLS文件?5个恢复方法

我们经常会使用到XLS文件来存储和整理数据。然而有时候由于误操作或不小心&#xff0c;我们可能会将重要的XLS文件删除&#xff0c;并且这些文件可能还被清空出了回收站。面对这种情况许多人会感到焦虑和无助。但是不必过于担心&#xff0c;因为有专门的软件可以帮助我们找回这…

(Java)心得:LeetCode——5.最长回文子串

一、原题 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同&#xff0c;则该字符串称为回文字符串。 示例 1&#xff1a; 输入&#xff1a;s "babad" 输出&#xff1a;"bab" 解释&#xff1a;"aba"…

【Linux】什么是进程?

一个正在执行的程序&#xff0c;我们称之为进程。 然后我们来顺着一条线来思考。 操作系统底层是用C语言编写的&#xff0c;而我们的进程&#xff0c;它会有各种属性&#xff0c;那么各种属性就可以用一个结构体来对进程的各个属性进行描述&#xff0c;然后这个结构体里面&…

手写一个SPI FLASH 读写擦除控制器(未完)

文章目录 flash读写数据的特点1. 扇擦除SE&#xff08;Sector Erase&#xff09;1.1 flash_se 模块设计1.1.1 信号连接示意图&#xff1a;1.1.2 SE状态机1.1.3 波形图设计&#xff1a;1.1.4 代码 2. 页写PP(Page Program)2.1 flash_pp模块设计2.1.1 信号连接示意图&#xff1a;…

Soviet Kitchen

苏联厨房-具有道具和带有碰撞器的模块化建筑部件的游戏环境资产 内部资产包: 网格-253 前言-98 材料-26 纹理-116 网格格式-(FBX) 纹理格式-(PNG) 资产列表: _BigShelf 多边形计数-1986 文本大小-2048x2048 可以 多边形计数-277 结构尺寸-512x512 _Celling 多边形计数-1 …

Codeforces Round 217 (Div. 2) A. Rook, Bishop and King(BFS)

Rook, Bishop and King 题面翻译 【题目描述】 佩蒂亚正在学习国际象棋。他已经学会如何移动王、车和象。让我们提示你如何移动国象棋子。棋盘有 64 64 64个棋格&#xff0c;呈 8 8 8\times8 88正方形。一个格子可以用 ( r , c ) (r,c) (r,c)来表示—— r r r指行&#xff…

Stable Diffusion的技术原理

一、Stable Diffusion的技术原理 Stable Diffusion是一种基于Latent Diffusion Models&#xff08;LDMs&#xff09;实现的文本到图像&#xff08;text-to-image&#xff09;生成模型。其工作原理主要基于扩散过程&#xff0c;通过模拟数据的随机演化行为&#xff0c;实现数据…

回表的原理竟然这么简单

“回表” 是指在使用辅助索引&#xff08;非聚簇索引&#xff09;作为条件进行查询时&#xff0c;由于辅助索引中只存储了索引字段的值和对应的主键&#xff08;聚簇索引&#xff09;键值&#xff0c;因此需要根据主键&#xff08;聚簇索引&#xff09;中的键值去查找实际的数据…

verilog中含有无关项的序列检测

编写一个序列检测模块&#xff0c;检测输入信号a是否满足011XXX110序列&#xff08;长度为9位数据&#xff0c;前三位是011&#xff0c;后三位是110&#xff0c;中间三位不做要求&#xff09;&#xff0c;当信号满足该序列&#xff0c;给出指示信号match。 程序的接口信号图如…