再讲Nginx代理:正向代理和反向代理有什么区别
时间:2026-08-12 | 作者:半糖攻略君 | 阅读:0前几天我帮一个朋友看 Nginx 配置。他把 proxy_pass 写好了,但问了我一句:
“我这个是不是正向袋里?”
我看了一眼,其实是反向袋里。
这类问题很常见。很多人一看到“袋里”这两个字,就下意识把它们当成一回事。
但放到 Nginx 的语境里看,正向袋里和反向袋里虽然名字里都有“袋里”,可所处位置根本不同,角色也完全不一样。
我一般用一句话区分:
正向袋里,是客户端找袋里出去;反向袋里,是服务端放袋里在前面接请求。
正向袋里:替客户端访问外部资源
正向袋里站在客户端这一边。
请求关系大概是:
客户端 → 正向袋里 → 目标服务器
客户端不直接访问目标网站,而是把请求交给袋里服务器,由袋里服务器替它访问目标网站。
目标服务器看到的,通常是袋里服务器,而不是原始客户端。
这里的重点是:袋里替客户端出去。
典型场景包括:
- 内网机器通过统一出口访问外网;
- 开发环境临时调试外部接口;
- 公司网关统一做访问审计;
- 采集任务统一管理出口 IP;
- 客户端不希望直接暴露真实来源。
如果你需要在客户端、程序或系统网络里配置袋里地址,那大概率就是正向袋里。
反向袋里:替后端服务接收外部请求
反向袋里站在服务端这一边。
请求关系大概是:
用户 → Nginx → 后端服务
用户访问的是 Nginx 暴露出来的域名,真实后端服务藏在 Nginx 后面。
比如用户访问:
https://example.com/api/user
Nginx 实际可能转发到:
http://127.0.0.1:8080/user
用户不知道后面是什么服务、什么端口、几台机器。它只知道访问一个域名。
这就是反向袋里的典型用途:
- 网站统一入口;
- API 请求转发;
- HTTPS 证书统一管理;
- 后端服务隐藏;
- 多个服务共用一个域名;
- 负载均衡;
- 缓存、限流、压缩。
大多数线上网站用 Nginx,主要就是用它做反向袋里。
一张表看懂区别
| 对比项 | 正向袋里 | 反向袋里 |
|---|---|---|
| 袋里站在哪边 | 客户端一侧 | 服务端一侧 |
| 替谁工作 | 替客户端访问外部资源 | 替服务端接收请求 |
| 隐藏谁 | 隐藏客户端 | 隐藏真实后端 |
| 谁配置 | 客户端或客户端所在网络 | 服务端部署方 |
| 用户是否感知 | 通常需要配置袋里 | 一般无感知 |
| 常见场景 | 统一出口、采集袋里、访问外部资源 | 网站入口、API 转发、负载均衡 |
| Nginx 是否擅长 | 能做简单场景 | 非常成熟 |
Nginx 反向袋里配置示例
最常见的反向袋里配置是这样:
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;}}
这段配置表示:
用户访问 example.com,Nginx 接住请求,然后转发给本机 8080 端口的后端服务。
几个头字段也别省:
Host:把原始域名传给后端;X-Real-IP:传递用户真实 IP;X-Forwarded-For:记录请求经过的袋里地址;X-Forwarded-Proto:告诉后端原始请求是 HTTP 还是 HTTPS。
不少线上问题不是 proxy_pass 写错,而是这些头没传好。
Nginx 正向袋里配置示例
Nginx 也可以做简单 HTTP 正向袋里:
server { listen 8888;resolver 8.8.8.8;location / { proxy_pass http://$http_host$request_uri;proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;}}
客户端把袋里地址设置为:
http://袋里服务器IP:8888
之后客户端访问外部 HTTP 网站,请求会先到 Nginx,再由 Nginx 去访问目标站点。
不过,这段配置更像是拿来讲清楚原理的,不太适合直接当成一套完整的生产方案去用。
原因也不复杂:HTTPS 正向袋里一般离不开 CONNECT 隧道,而原生 Nginx 的 HTTP 模块对这部分能力支持并不完整。
真要长期稳定运行,常见做法还是上专门的正向袋里服务,或者先确认 Nginx 已经加载了对应的第三方模块。
最后说一句
判断正向袋里和反向袋里,不要只看有没有 proxy_pass。
你要看它替谁办事。
- 替客户端出去,是正向袋里。
- 替服务端接请求,是反向袋里。
- 做网站入口、API 转发、负载均衡,按反向袋里理解。
- 做统一出口、采集袋里、外部资源访问,按正向袋里理解。
这个方向判断清楚,Nginx 配置就不容易跑偏。
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- 迅捷路由器怎么调信号最强,设置时要注意什么?
- 时间:2026-08-27
-
- vivo浏览器怎么卸不掉?原因和解决方法在这里
- 时间:2026-08-27
-
- OPPO R11s黑屏了,怎么强制恢复出厂设置?
- 时间:2026-08-27
-
- 飞利浦显示器包装盒有生产日期和保修期吗?怎么看?
- 时间:2026-08-27
-
- 联想新平板开机必须联网吗?怎么做?
- 时间:2026-08-27
-
- 平板横竖屏切换设置与问题解决
- 时间:2026-08-27
-
- 移动电源容量怎么测?要准备哪些工具?
- 时间:2026-08-27
-
- 荣耀90 Pro防水吗?防水级别多少?怎么用才安全
- 时间:2026-08-27
精选合集
更多大家都在玩
大家都在看
更多-
- 糖尿病完全不能吃糖吗
- 时间:2026-09-15
-
- 蚂蚁庄园小课堂2026年9月16日最新题目答案
- 时间:2026-09-15
-
- 小鸡答题今天的答案是什么2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园每日答题答案2026年9月16日
- 时间:2026-09-15
-
- 以下哪种粮食是酿造绍兴黄酒的主要原料 蚂蚁庄园今日答案9月16日
- 时间:2026-09-15
-
- 劝学名句“及时当勉励,岁月不待人”出自哪位诗人 蚂蚁庄园今日答案9.16
- 时间:2026-09-15
-
- 蚂蚁庄园今天答题答案2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园答题今日答案2026年9月16日
- 时间:2026-09-15
