Skip to content

Nginx ​

Nginx 是项目部署中常用的 Web 服务器和反向代理服务器。

这套课程统一使用 Docker 运行 Nginx。宿主机只负责保存配置文件、静态资源和执行 Docker 命令,不安装宿主机版 Nginx。

课程不讲源码,也不展开过重的性能调优。我们重点解决一个问题:如何用 Docker 和 Nginx 把 Web 项目稳定地部署出来。

课程目标 ​

学完之后,你应该能完成这些事情:

  1. 使用 Docker 启动和管理 Nginx。
  2. 挂载静态文件和 Nginx 配置目录。
  3. 看懂 nginx.conf、server 和 location 的层级。
  4. 部署静态网站和前端单页应用。
  5. 使用 Nginx 反向代理 Docker 网络中的后端服务。
  6. 使用 upstream 完成简单负载均衡。
  7. 配置动静分离和静态资源缓存。
  8. 通过证书挂载为容器中的 Nginx 配置 HTTPS。
  9. 使用 Docker 日志排查 403、404、502、504 等常见问题。
  10. 使用 Docker Compose 部署“前端 + Nginx + FastAPI”项目。

前置知识 ​

学习本课程前,建议先掌握:

  1. Linux 基本命令。
  2. Docker 镜像、容器、端口和数据卷的基本使用。
  3. Docker 网络和 Docker Compose 的基础用法。
  4. HTTP 请求、响应、域名和端口的基本概念。
  5. 前端静态文件和后端 API 的基本区别。

统一实验约定 ​

整套课程使用下面的约定:

项目约定
Nginx 镜像nginx:1.30.5-alpine3.24(课程验证版本;升级时重新检查所有示例)
综合案例 Pythonpython:3.12.14-slim-bookworm
综合案例依赖FastAPI 0.141.1、Uvicorn 0.53.0
Docker Compose使用支持 depends_on.condition: service_healthy 的 Compose v2 插件;本次验证环境为 v5.5.1
Nginx 容器名zx-nginx
本地 HTTP 地址http://127.0.0.1:8080
本地 HTTPS 地址https://127.0.0.1:8443
教学域名zhengxinonly.com
站点配置宿主机 conf.d/ 挂载到 /etc/nginx/conf.d/
静态文件宿主机 html/ 挂载到 /usr/share/nginx/html/
配置检查docker exec zx-nginx nginx -t
重新加载docker exec zx-nginx nginx -s reload
查看日志docker logs zx-nginx

开始前检查本机工具与镜像实际版本:

shell
docker version
docker compose version
docker run --rm nginx:1.30.5-alpine3.24 nginx -V

nginx -V 输出中应包含 --with-http_v2_module。镜像标签固定了课程使用的 Nginx 与 Alpine 版本,但同一标签仍可能收到维护更新;严格复现某次构建时,可在验证后记录镜像摘要。升级镜像或 Python 依赖后,先运行各章的配置检查和综合项目回归请求。

课堂本地实验不依赖公网 DNS。需要匹配域名时,使用:

shell
curl -H "Host: zhengxinonly.com" http://127.0.0.1:8080

每章使用独立实验目录。切换章节前,可以删除同名实验容器:

shell
docker rm -f zx-nginx

命令只会删除容器,不会删除宿主机中的配置文件和静态资源。

章节目录 ​

Part 01:Nginx 基础与静态部署 ​

  1. Nginx 介绍
  2. Nginx 配置文件
  3. location

Part 02:反向代理与流量分发 ​

  1. 反向代理
  2. 负载均衡
  3. 动静分离

Part 03:HTTPS 与上线实战 ​

  1. HTTPS 与证书
  2. 日志与排错
  3. 综合实战
  4. 生产常用配置

学习路线 ​

Part 01 先把 Nginx 容器跑起来,掌握配置挂载、加载顺序、虚拟主机和路径匹配。

Part 02 进入部署核心:Docker 网络、反向代理、负载均衡、动静分离和缓存。

Part 03 先解决证书挂载、HTTP 跳转 HTTPS 和 Certbot 容器续期,再完成日志排错、Docker Compose 综合部署和生产配置补强。

综合案例 ​

综合实战会部署一个完整 Web 项目:

  1. Nginx 容器托管前端静态页面。
  2. FastAPI 运行在独立容器中。
  3. /api/ 请求通过 Docker 网络转发到 FastAPI。
  4. 静态资源启用缓存。
  5. HTTP 自动跳转 HTTPS。
  6. 使用 Docker 日志排查一次 502。