Docker部署Nginx HTTPS服务的实现步骤
一、文档说明
1.1 适用环境
- 操作系统:CentOS 7(64位)
- 核心目标:基于 Docker 部署 Nginx 服务,实现 HTTP 自动跳转 HTTPS,解决中文乱码、证书挂载、镜像检测等问题
- 前置条件:服务器以 root 用户登录,且能访问外网(已手动拉取
nginx:1.21镜像)
1.2 最终效果
- 访问
http://192.168.10.110自动跳转至https://192.168.10.110 - HTTPS 页面正常显示中文,无乱码
- Nginx 容器开机自启,配置/证书/日志持久化存储
二、详细部署步骤
步骤1:环境检查与基础准备
1.1 检查用户权限(必须 root)
|
1 2 3 |
|
1.2 安装基础工具(解决依赖)
|
1 2 |
|
1.3 检查端口可用性(80/443 必须空闲)
|
1 2 3 4 5 6 7 |
|
步骤2:创建工作目录(统一管理资源)
|
1 2 3 4 |
|
步骤3:生成 SSL 自签名证书
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
步骤4:编写 Nginx HTTPS 配置文件
4.1 创建配置文件
|
1 |
|
4.2 粘贴完整配置(含 UTF-8 编码,解决中文乱码)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
|
4.3 验证配置语法(关键:挂载证书目录验证)
|
1 2 3 4 5 6 7 8 9 |
|
步骤5:创建测试页面(解决中文乱码)
|
1 2 |
|
粘贴以下内容:
|
1 2 3 4 5 6 7 8 9 10 |
|
设置页面权限:
|
1 |
|
步骤6:启动 Nginx 容器
6.1 清理旧容器(避免冲突)
|
1 2 3 |
|
6.2 启动新容器(完整挂载所有目录)
|
1 2 3 4 5 6 7 8 9 10 11 |
|
参数说明:
| 参数 | 作用 |
|---|---|
| --name nginx-https | 容器命名为 nginx-https |
| --privileged=true | 提升容器权限,解决挂载目录权限不足问题 |
| -p 80:80/-p 443:443 | 宿主机端口映射到容器端口 |
| -v 宿主机路径:容器路径 | 目录挂载,实现配置/证书/页面/日志持久化(修改宿主机文件无需重建容器) |
| --restart=always | 容器随 Docker 开机自启 |
6.3 验证容器启动状态
|
1 2 3 4 5 |
|
三、验证部署结果
3.1 命令行验证
3.1.1 验证 HTTP 自动跳转
|
1 2 3 4 |
|
3.1.2 验证 HTTPS 访问(忽略自签名证书)
|
1 2 |
|
3.2 浏览器验证
- 打开浏览器,访问
https://192.168.10.110; - 忽略“不安全连接”警告(自签名证书正常现象);
- 页面显示“Nginx HTTPS 部署成功!主机IP:192.168.10.110”,中文无乱码则完成。

四、常见问题排查
4.1 镜像检测失败
现象:提示“nginx:1.21 镜像不存在”,但已拉取;
解决:用格式化命令验证镜像:
|
1 2 |
|
4.2 证书文件不存在
现象:Nginx 配置测试提示“cannot load certificate”;
解决:
|
1 2 3 |
|
4.3 中文乱码
现象:页面中文显示为方框/乱码;
解决:
- 确认测试页面添加
<meta charset="UTF-8">; - 确认 Nginx 配置
http块内添加charset utf-8; - 重启容器:
docker restart nginx-https。
4.4 端口占用
现象:容器启动失败,提示端口被占用;
解决:
|
1 2 3 4 |
|
五、日常运维命令
5.1 容器启停/重启
|
1 2 3 4 5 6 |
|
5.2 查看日志
|
1 2 3 4 5 6 |
|
5.3 修改配置后生效
|
1 2 3 4 5 6 |
|
5.4 删除容器(如需重装)
|
1 2 3 |
|
到此这篇关于Docker部署Nginx HTTPS服务的实现步骤的文章就介绍到这了
更多推荐
所有评论(0)