详情

首页手游攻略 2026 年再讲 Nginx 袋里:正向袋里和反向袋里到底差在哪?

2026 年再讲 Nginx 袋里:正向袋里和反向袋里到底差在哪?

佚名 2026-08-17 20:07:57

前几天我帮一个朋友看 Nginx 配置。他把 proxy_pass 写好了,但问了我一句:

“我这个是不是正向袋里?”

我看了一眼,其实是反向袋里。

这类问题很常见。很多人一看到“袋里”两个字,就默认是同一回事。但在 Nginx 里,正向袋里和反向袋里虽然都叫袋里,站的位置完全不同。

我一般用一句话区分:

正向袋里,是客户端找袋里出去;反向袋里,是服务端放袋里在前面接请求。

正向袋里:替客户端访问外部资源

正向袋里站在客户端这一边。

请求关系大概是:

text复制

客户端 → 正向袋里 → 目标服务器

客户端不直接访问目标网站,而是把请求交给袋里服务器,由袋里服务器替它访问目标网站。

目标服务器看到的,通常是袋里服务器,而不是原始客户端。

典型场景包括:

内网机器通过统一出口访问外网; 开发环境临时调试外部接口; 公司网关统一做访问审计; 采集任务统一管理出口 IP; 客户端不希望直接暴露真实来源。

这里的重点是:袋里替客户端出去。

如果你需要在客户端、程序或系统网络里配置袋里地址,那大概率就是正向袋里。

反向袋里:替后端服务接收外部请求

反向袋里站在服务端这一边。

请求关系大概是:

text复制

用户 → Nginx → 后端服务

用户访问的是 Nginx 暴露出来的域名,真实后端服务藏在 Nginx 后面。

比如用户访问:

text复制

https://example.com/api/user

Nginx 实际可能转发到:

text复制

http://127.0.0.1:8080/user

用户不知道后面是什么服务、什么端口、几台机器。它只知道访问一个域名。

这就是反向袋里的典型用途:

网站统一入口; API 请求转发; HTTPS 证书统一管理; 后端服务隐藏; 多个服务共用一个域名; 负载均衡; 缓存、限流、压缩。

大多数线上网站用 Nginx,主要就是用它做反向袋里。

一张表看懂区别

对比项正向袋里反向袋里
袋里站在哪边客户端一侧服务端一侧
替谁工作替客户端访问外部资源替服务端接收请求
隐藏谁隐藏客户端隐藏真实后端
谁配置客户端或客户端所在网络服务端部署方
用户是否感知通常需要配置袋里一般无感知
常见场景统一出口、采集袋里、访问外部资源网站入口、API 转发、负载均衡
Nginx 是否擅长能做简单场景非常成熟

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 正向袋里:

nginx复制

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;}}

客户端把袋里地址设置为:

text复制

http://袋里服务器IP:8888

之后客户端访问外部 HTTP 网站,请求会先到 Nginx,再由 Nginx 去访问目标站点。

但这段配置更适合说明概念,不建议直接当完整生产方案。因为 HTTPS 正向袋里通常需要 CONNECT 隧道,原生 Nginx 的 HTTP 模块并不完整支持。真要长期跑,通常会用专门的正向袋里服务,或者确认 Nginx 已加载相关第三方模块。

最后说一句

判断正向袋里和反向袋里,不要只看有没有 proxy_pass

你要看它替谁办事。

替客户端出去,是正向袋里。

替服务端接请求,是反向袋里。

做网站入口、API 转发、负载均衡,按反向袋里理解。

做统一出口、采集袋里、外部资源访问,按正向袋里理解。

这个方向判断清楚,Nginx 配置就不容易跑偏。

相关资讯
点击查看更多
游戏推荐
推荐专题
热门阅读
推荐下载