IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> docker-compose 部署nginx配置ssl -> 正文阅读

[系统运维]docker-compose 部署nginx配置ssl

1 背景

随着公有云、私有云和混合云的普及,容器化技术越来越被大众使用,docker 相关应用和部署在工作中越来越多的被使用,本文以nginx的部署为例进行,如果只是单纯的安装nginx,可以参考《linux 系统下四种nginx安装方法》,本文是上篇的延续和拓展。

2 环境说明

名称版本
操作系统CentOS Linux release 7.9.2009 (Core)
dockerDocker version 20.10.14
docker-composedocker-compose version 1.25.1
nginx1.21.6

3 部署nginx

3.1 准备工作

创建文件夹

mkdir -p /data/nginx/conf.d /data/nginx/logs /data/nginx/letsencrypt /data/site

创建部署文件

vi /data/nginx/docker-compose.yml

输入如下信息

version: "3"
services:
  nginx:
    image: nginx:1.21.6
    restart: always
    container_name: nginx
    environment:
      - TZ=Asia/Shanghai
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /data/nginx/conf.d:/etc/nginx/conf.d
      - /data/nginx/logs:/var/log/nginx
      - /data/site:/usr/share/nginx/html
      - /data/nginx/letsencrypt:/etc/letsencrypt
      - /data/nginx/nginx.conf:/etc/nginx/nginx.conf
项目目录说明
配置文件夹/data/nginx/conf.d目录下存放default.conf
配置文件/data/nginx/nginx.conf主配置文件
日志文件夹/data/nginx/logserrors.log和acess.log
证书文件夹/data/nginx/letscrypt存放nginx的https证书
站点/data/site站点文件夹
部署文件/data/nginx/docker-compose.yml部署文件

**注意:**证书需要提前在域名购买网站进行申请。
目录创建完毕后,将文件放置对应的目录下
nginx.conf 和default.conf配置文件、证书文件、部署文件docker-compose.yml、站点文件
nginx配置文件获取方法:
nginx.conf和default.conf文件可以使用
1、拉取镜像

docker pull nginx:1.21.6 

2、运行镜像

docker run -d -p 8080:80 nginx:1.21.6

3、查看容器id

docker ps

4、进入容器

docker exec -it f424fd6f2315 /bin/bash

注意:如果使用的是alpine版本的nginx 进入容器的命令为:docker exec -it 33e8474cdd09 /bin/sh

查找容器中的default.conf和nginx.conf文件的位置

  • /etc/nginx/conf.d/default.conf
  • /etc/nginx/nginx.conf

5、退出容器

exit

6、拷贝

docker cp f424fd6f2315:/etc/nginx/conf.d/defaut.conf /data/nginx/donf.d
docker cp f424fd6f2315:/etc/nginx/nginx.conf /data/nginx

拷贝完毕
7、删除容器

docker stop f424fd6f2315
docker rm f424fd6f2315

目录结构
在这里插入图片描述
开具端口或者服务
centos7.9服务器默认是开具了ssh服务,nginx外部访问需要开具htttp和https或其对应的端口80和443端口

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload

3.2 开始部署

启动部署

docker-compose up -d

在这里插入图片描述

测试
终端输入 curl IP在这里插入图片描述

打开浏览器输入IP地址查看
在这里插入图片描述
细心的读者可能已经发现浏览器地址栏左侧的“不安全”字眼和图标,接下来配置SSL证书来让网站相对来说更安全点。

4 配置SSL证书

配置Nginx中“/data/nginx/conf.d/”目录下的“default.conf”文件。
新增如下内容

vi /data/nginx/conf.d/default.conf
server {
    # SSL 访问端口
    listen      443 ssl;
    # 绑定证书域名
    server_name jjyard.xyz;
    # 证书文件
    ssl_certificate     /etc/letsencrypt/jjyard.xyz_bundle.crt;
    # 私钥文件
    ssl_certificate_key /etc/letsencrypt/jjyard.xyz.key;
    ssl_session_timeout 5m;
    # 配置协议
    ssl_protocols       TLSv1.2 TLSv1.3;
    #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
    ssl_prefer_server_ciphers on;
    location / {
        root    /usr/share/nginx/html;
        index   index.html index.htm;
    }
}

在这里插入图片描述
查看运行容器 id

docker ps 

使用查看到的容器id进入容器
进入容器

docker exec -it 33e8474cdd09 /bin/bash

注意:如果使用的是alpine版本的nginx命令为:docker exec -it 33e8474cdd09 /bin/sh
验证nginx配置文件
nginx -t
在这里插入图片描述
重启容器

docker restart 33e8474cdd09

浏览器
输入:https://jjyard.xyz
在这里插入图片描述

浏览器中输入原
http://jjyard.xyz
在这里插入图片描述

目前是支持80和443端口的,可以将80端口强制跳转至443端口使用https协议访问
修改/data/nginx/conf.d/default.conf
添加如下信息

#填写绑定证书的域名
server_name server_name.xyz; 
#把http的域名请求转成https
return 301 https://$host$request_uri; 

重启容器

docker restart 33e8474cdd09

浏览器中输入http://jjyard.xyz
浏览器自动跳转https://jjyard.xyz
在这里插入图片描述

5 参考

Nginx 服务器 SSL 证书安装部署

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-29 12:31:28  更:2022-04-29 12:33:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:11:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码