【实验】根据docker部署nginx并且实现https

news/2024/9/22 15:10:00/
环境准备
systemctl stop firewalld
setenforce 0

安装docker

#安装依赖包
yum -y install yum-utils device-mapper-persistent-data lvm2
#设置阿里云镜像
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
#安装最新版本的docker
yum -y install docker-ce docker-ce-cli containerd.io
#设置开机自启
systemctl enable docker.service 
#镜像加速下载
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://fil0uwf5.mirror.aliyuncs.com"]
}
EOF
#重新加载配置,重启docker
systemctl daemon-reload
systemctl restart docker
#下载nginx镜像
docker pull nginx
docker images

准备证书

证书生成脚本
cd /opt
vim /opt/cert.sh
i
# 该脚本,可以生成对应域名的所需的证书文件
CA_SUBJECT="/O=kgc/CN=ca.kgc.com"
SUBJECT="/C=CN/ST=js/L=nj/O=kgc/CN=www.kgc.com"
SERIAL=34
EXPIRE=365
FILE=kgc.com#生成一个自签名的X.509证书
openssl req  -x509 -newkey rsa:2048 -subj $CA_SUBJECT -keyout ca.key -nodes -days 365 -out ca.crt#生成一个RSA密钥对和证书签名请求
openssl req -newkey rsa:2048 -nodes -keyout ${FILE}.key  -subj $SUBJECT -out ${FILE}.csropenssl x509 -req -in ${FILE}.csr  -CA ca.crt -CAkey ca.key -set_serial $SERIAL  -days $EXPIRE -out ${FILE}.crtchmod 600 ${FILE}.key ca.key

执行脚本
bash cert.sh

#执行该脚本后执行后会生成ca.crt ca.key certificate.sh kgc.com.crt kgc.com.csr kgc.com.key 这几个文件,需要对其进行处理

kgc.com.crt(购买者) ca.crt(b颁发者) www.kgc.com.key(验证钥匙

创建cert目录存放证书文件
cat kgc.com.crt ca.crt > www.kgc.com.crt
mv kgc.com.key www.kgc.com.key 
ll /mnt/cert/

nginx.conf 文件
cd /mnt
vim /mnt/nginx.conf
i
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;events {worker_connections 1024;
}http {log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile            on;tcp_nopush          on;tcp_nodelay         on;keepalive_timeout   65;types_hash_max_size 4096;include             /etc/nginx/mime.types;default_type        application/octet-stream;server {listen 80;listen 443 ssl;   ssl_certificate /mnt/www.kgc.com.crt;ssl_certificate_key /mnt/www.kgc.com.key;ssl_session_cache shared:sslcache:20m;ssl_session_timeout 10m;server_name www.kgc.com;root     /usr/share/nginx/html;error_page 404 /404.html;location = /404.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}
}
index.html 文件
cd /mnt
echo "monor" > /mnt/index.html

生成nginx容器
docker run -itd -p 8080:80 -p 8090:443 -v /mnt/nginx.conf:/etc/nginx/nginx.conf -v /mnt/index.html:/usr/share/nginx/html/index.html -v /mnt/cert/:/mnt/ --name nginx nginx:latest

#生成容器,指定容器内80端口映射到本机的8080端口,指定容器内443端口映射到本机的8090端口

#将/mnt/nginx.conf挂载到容器内/etc/nginx/nginx.conf下,

#将/mnt/index.html挂载到容器内的/usr/share/nginx/html/index.html,将容器内的index.html覆盖掉

#将/mnt/cert挂载到容器内的/mnt下,/mnt/cert下的所有文件都会出现在容器的/mnt下

#别名为 nginx 使用 nginx:latest 镜像生成并启动

docker ps -a

浏览器访问
https://192.168.67.30:8090/

点击【高级】

选择【继续访问 192.168.67.30 (不安全)


http://www.ppmy.cn/news/1453564.html

相关文章

Python学习笔记------pycharts模块

pyecharts模块简介 Echarts是个由百度开源的数据可视化&#xff0c;凭借着良好的交互性&#xff0c;精巧的图表设计&#xff0c;得到众多开发者的认可&#xff0c;而python是门富有表达力的语言&#xff0c;很适合用于数据处理&#xff0c;当数据分析遇上数据可视化时pyechart…

Python实战开发及案例分析(7)—— 排序算法

排序算法是计算机科学中的基础&#xff0c;用于将数据元素按照特定的顺序排列。Python 提供了多种方式来实现排序算法&#xff0c;包括内置的排序函数和手动实现各种经典排序算法。 Python 内置排序函数 Python 的内置函数 sorted() 和列表的 sort() 方法提供了高效的排序功能…

56 关于 linux 的 oom killer 机制

前言 这里主要讲的是 linux 的 oom killer 机制 在系统可用内存较少的情况下&#xff0c;内核为保证系统还能够继续运行下去&#xff0c;会选择杀掉一些进程释放掉一些内存。 通常oom_killer的触发流程是&#xff1a;进程A想要分配物理内存&#xff08;通常是读写内存&#…

ceph osd相关

概述 本文主要介绍ceph osd相关的一些概念。 osd 挂载目录 在osd启动前&#xff0c;需要读一些数据用于引导&#xff0c;校验等等。在使用硬盘创建osd时&#xff0c;经常能看到osd会预留一部分空间&#xff08;ceph-disk版本为盘分区类似/dev/sdb1,ceph-volume版本为temp&am…

设计模式-03 设计模式-工厂模式factory-内部工厂

设计模式-03 设计模式-工厂模式factory-内部工厂 目录 设计模式-03 设计模式-工厂模式factory-内部工厂 1.定义 2.内涵 3.案例对比 4.特点 4.总结 1.定义 内部工厂模式是一种创建类对象的方式&#xff0c;其中工厂方法被封装在类内部&#xff0c;客户端只能通过类的公共…

Rust里的Fn/FnMut/FnOnce和闭包匿名函数关系

闭包&#xff08;英语&#xff1a;Closure&#xff09;&#xff0c;又称词法闭包&#xff08;Lexical Closure&#xff09;或函数闭包&#xff08;function closures&#xff09;&#xff0c;是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在&#xff0c;即使…

EPAI手绘建模APP图层、相机、灯光

④ 图层列表 1) 添加图层。 2) 列表显示场景中所有图层。初始时&#xff0c;默认有一个激活的图层。场景中所有模型都会添加到这个图层。 3) 第一次点击图层名称旁边的可见按钮&#xff0c;图层中所有模型都不可见&#xff0c;再次点击&#xff0c;图层中所有模型可见。 4)…

【MySql】FIND_IN_SET 字符串逗号分隔,判断是否包含某字符串

FIND_IN_SET 字符串逗号分隔&#xff0c;判断是否包含某字符串 一、FIND_IN_SET FIND_IN_SET 返回某字符串在一串有逗号组成的字符串集合(SET)中的第几位&#xff0c;不存在时为0 -- 查询结果&#xff1a;4 SELECT FIND_IN_SET( ad, ac,ab,aa,ad )-- 查询结果&#xff1a;0 …