✅ 覆盖:核心原理、反向代理、负载均衡、限流、动静分离、配置语法、安全控制等关键知识点
一、基础概念
1. 什么是 Nginx?
Nginx 是一个 轻量级、高性能的 HTTP 和反向代理服务器,支持高并发(官方实测支持 5 万 + 并发连接),广泛用于:
- Web 服务器(静态资源)
- 反向代理
- 负载均衡
- API 网关
🌐 国内用户:新浪、网易、腾讯、淘宝等均大规模使用。
2. 为什么要用 Nginx?
- 高性能:基于异步非阻塞事件模型(epoll/kqueue),支持数万并发
- 低内存消耗:10 个 Nginx 进程仅占约 150MB 内存
- 配置简单:语法清晰,易于维护
- 功能丰富:
- 反向代理 + 负载均衡
- 内置健康检查(自动剔除宕机节点)
- GZIP 压缩 + 浏览器缓存 → 节省带宽
- 高稳定性,极少宕机
- 安全增强:隐藏后端真实 IP,防止直接暴露
3. 为什么 Nginx 性能这么高?
核心在于其 事件驱动 + 异步非阻塞 I/O 模型:
- 使用 epoll(Linux)/kqueue(BSD) 多路复用机制
- 单 Worker 进程可处理数千连接
- 无阻塞等待,请求排队由内核高效管理
💡 类比:传统 Apache 是'一个工人服务一个客户',Nginx 是'一个经理协调多个客户'。
二、请求处理与配置
4. Nginx 如何处理一个请求?
- 根据
listen和server_name匹配对应的server块 - 在
server中根据请求 URI 匹配location块 - 执行对应操作(返回静态文件、反向代理、重写等)
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html;
}
}
5–6. 正向代理 vs 反向代理
| 类型 | 方向 | 作用 | 示例 |
|---|---|---|---|
| 正向代理 | 客户端 → 代理 → 目标服务器 | 隐藏客户端身份 | 公司员工通过代理访问外网 |
| 反向代理 | 客户端 → Nginx → 后端服务器 | 隐藏服务器身份,负载均衡 | 用户访问 www.example.com,实际由 Nginx 转发到 Tomcat |


