Nginx是大型架构核心,下面我详解Nginx反向代理@mikechen
Nginx反向代理
正向代理:客户端自己配置代理(如翻墙代理)。
代理替用户访问互联网,服务器不知道真实客户端是谁。
反向代理:用户只知道代理(Nginx)的地址。
由 Nginx 把请求转发给内部真实服务,客户端不直接接触后端。
如下图所示:

客户端只知道 Nginx 的 IP,不知道后端真实业务服务器(Upstream)的存在。
这样,可以隐藏后端真实 IP,提升安全性,还可以:负载均衡 + 高可用。
Nginx反向代理架构
Nginx反向代理架构,如下图所示:

用户请求 ↓ [Nginx 反向代理层] ↓ [应用服务器集群] ↓ [数据库 / 缓存]
客户端层:只访问域名(如 mikechen.cc)。
Nginx 层:处理所有入口流量,支持集群 + Keepalived / VIP 实现高可用。
后端层:多台服务器,只监听内网端口(如 8080),完全对公网不可见。
Nginx 采用事件驱动 + 异步非阻塞模型(Master + Worker 进程),单机轻松支撑数万并发。
Nginx反向代理原理
整体工作流程,如下:

http {
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8080; # 后端地址
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
工作流程如下:
- 客户端发起 HTTP/HTTPS 请求 → Nginx 监听端口(80/443)。
- Nginx 根据 server_name + location 匹配规则处理请求。
- 通过 upstream 定义的后端组 + 负载均衡算法选择一台后端服务器。
- Nginx 使用 proxy_pass 将请求完整转发(可改写 Header、URI)。
- 后端处理后返回响应 → Nginx 可缓冲、压缩、缓存后再返回客户端。
- 整个过程客户端感知不到后端真实服务器。