计算机网络
反向代理
发布于 2026年7月24日
反向代理(Reverse Proxy)是部署在客户端和后端服务器之间的“统一入口”。
客户端并不直接访问真正的业务服务器,而是先访问反向代理,由它把请求转发给合适的后端服务器。
用户浏览器
↓ 请求 example.com
反向代理(Nginx)
↓ 转发请求
后端服务器 A / B / C
↓ 返回结果
反向代理
↓
用户浏览器
例如,一个网站有三台后端服务器:
10.0.0.11:8080
10.0.0.12:8080
10.0.0.13:8080
用户只需要访问:
https://example.com
反向代理收到请求后,可以自动选择其中一台服务器处理。用户不会知道真正的服务器地址。
简单理解:反向代理是“门卫/前台”这个岗位,Nginx 是可以担任这个岗位的具体工具。
反向代理通常有这些作用:
- 负载均衡:把请求分配给多台服务器,避免某一台压力过大。
- 隐藏后端服务器:外界只能看到代理服务器,不能直接访问内部服务。
- HTTPS 处理:统一管理 SSL 证书,后端服务可以只处理普通 HTTP。
- 缓存:缓存图片、网页或接口结果,减少后端压力。
- 安全防护:限制访问频率、拦截异常请求、配置黑白名单。
- 故障转移:某台后端服务器不可用时,把请求转发给其他服务器。
- 路径转发:根据 URL 把请求交给不同服务,例如:
/api/ → API 服务
/user/ → 用户服务
/static/ → 静态文件服务
一个简单的 Nginx 反向代理配置如下:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
这表示用户访问 example.com 时,Nginx 会把请求转发给本机 8080 端口上的后端程序。
它和正向代理的区别可以简单记成:
- 正向代理代理客户端:帮助用户访问外部网站,例如公司代理或网络代理。
- 反向代理代理服务器:帮助网站接收请求,并把请求分配给内部服务器。
一句话概括:反向代理就是站在服务器前面的“接待员”,负责接收、分配和保护所有外部请求。