Nginx 全解析:反向代理、负载均衡与动静分离一文通

EEva·三月 2, 2026·4 min read

一、 Nginx 是什么?

Nginx 是一款高性能的开源 Web 服务器和反向代理服务器,采用事件驱动的异步非阻塞架构,能以极低的内存消耗轻松处理数万并发连接。
其最常见的用途是作为静态资源服务器反向代理负载均衡器——将用户请求分发给后端多台应用服务器,对外只暴露 Nginx 自身,从而大幅提升系统的性能、安全性和可用性。

Nginx 通常被用来实现四大核心功能:正向代理反向代理负载均衡以及动静分离

二、 正向代理 (Forward Proxy)

定义: 位于客户端和目标服务器之间的代理服务器,代表客户端向目标服务器发送请求。目标服务器只能看到代理的 IP,不知道真实的客户端是谁。

核心逻辑: 客户端知道要访问谁,但让代理“替自己去拿”。隐藏的是客户端身份。

常见用途:
* 科学上网: 客户端无法直接访问目标站点时,通过代理中转。
* 隐藏真实 IP: 保护客户端隐私。
* 访问控制: 企业通过代理限制员工可访问的网站。
* 缓存加速: 代理缓存常用资源,减少重复请求。

三、 反向代理 (Reverse Proxy)

定义: 位于后端服务器前面的代理服务器,代表服务器接收客户端请求,再转发给后端真实服务器处理,最后把响应返回给客户端。客户端全程只知道代理的地址。

核心逻辑: 反向代理“替服务器迎客”。正向代理和目标服务器对外表现为一个整体。隐藏的是服务器身份与真实 IP。 (这是 Nginx 最典型的用法)

常见用途:
* 负载均衡: 将请求分发到多台后端服务器,避免单点过载。
* 安全防护: 隐藏真实服务器 IP,收敛攻击面,抵御 DDoS 攻击。
* SSL 终止: 由代理统一集中处理 HTTPS 加解密,减轻后端服务器运算负担。
* 缓存加速: 缓存静态内容,加快响应速度。
* 统一入口: 单个域名背后可以对接调度多个不同的微服务。

四、 负载均衡 (Load Balancing)

定义: 在反向代理基础之上实现,将用户的并发请求分摊到多台服务器上处理,避免单台服务器过载。

通俗理解: 原来一台服务器扛所有请求,现在加一堆服务器大家一起扛。请求来了按规则分发,谁都不会被单独压垮。

核心价值:

价值 说明
提高性能 请求分散处理,降低单机压力,有效缩短响应时间
高可用 若某台服务器宕机,流量自动切换到其他健康节点
水平扩展 流量增大时直接增加机器即可,无需受限于单机硬件升级
安全防护 对外仅暴露负载均衡器地址,彻底隐藏后端全量服务器

常见路由算法:
1. 轮询 (Round Robin): 按顺序依次均匀分配(最简单默认)。
2. 加权轮询: 为性能强的服务器分配更高的权重及更多请求。
3. 最少连接 (Least Connections): 优先将请求分发给当前活跃连接数最少的服务器。
4. IP 哈希: 同一客户端 IP 的请求始终被分发到同一台后端服务器(用于保持会话/Session维持)。
5. 随机 (Random): 随机选择一台服务器。

五、 动静分离

定义: 将动态请求和静态资源分开处理。
* 静态资源: 内容固定不变的文件,如 HTML、CSS、JS、图片、视频、字体等。
* 动态请求: 需要后端实时运算的请求,如 API 接口、数据库查询、用户登录等。

核心思路: Nginx 自身直接拦截并返回静态文件,只有动态请求才转发给后端的应用服务器(如 Tomcat、Node.js、PHP-FPM)。

核心价值与原因:

优势 说明
性能提升 Nginx 处理静态文件效率极高,并发承载力比 Tomcat 等应用服务器快很多倍
减轻后端压力 后端服务器专心只处理业务逻辑计算,不再受静态资源 I/O 拖累
便于缓存 静态分量更容易独立设置浏览器缓存策略及无缝接入 CDN 加速
架构解耦与扩展 动态代码节点和静态资源节点可以完全独立部署、独立按需扩容