代理是我自己设置的,用来访问外部资源,这个代理为客户端服务,可以视为正向代理;代理是服务端管理员部署的,用来接收外部请求,这个代理为服务端服务,可以视为反向代理;正向代理:"我帮客户端出头",反向代理:"我帮服务端看门"。
正向代理场景:
公司 IT 部门在每台电脑上配置了代理 proxy.company.com:8080
你打开浏览器访问百度,请求会自动走这个代理
百度看到的是代理的 IP,不是你电脑的 IP
这个代理是谁部署的? → IT 部门(代表客户端侧)
为谁服务? → 为你(客户端)隐藏身份、管控上网
这是正向代理(不管你是在"向内"还是"向外"访问)
反向代理场景
你部署了一个博客,域名 blog.com,Nginx 转发到 127.0.0.1:8080
用户访问 blog.com,Nginx 接收请求,转发给博客程序
用户完全不知道博客程序在 8080 端口
这个代理是谁部署的? → 你(服务端管理员)
为谁服务? → 为你的博客程序(服务端)隐藏真实架构
这是反向代理(不管用户是"向内"请求数据,还是"向外"接收响应)
对比表格
| 对比维度 | 正向代理 | 反向代理 |
|---|---|---|
| 部署者 | 客户端侧(用户/公司 IT) | 服务端侧(网站运维) |
| 谁配置 | 客户端主动设置 | 服务端管理员配置 |
| 谁不知道谁 | 目标服务器不知道客户端是谁 | 客户端不知道后端服务器是谁 |
| 数据请求方向 | 客户端 → 代理 → 目标服务器 | 客户端 → 代理 → 后端服务器 |
| 数据响应方向 | 目标服务器 → 代理 → 客户端 | 后端服务器 → 代理 → 客户端 |
| 方向特征 | 请求和响应都经过代理,方向同时存在 | 请求和响应都经过代理,方向同时存在 |

