正向代理和反向代理

“反向”这个词容易让人迷惑。理解它的关键是:看代理站在哪一边。

先理解“代理”是什么

代理就是:

中间人代替某一方去通信。

比如:

A  --->  代理  --->  B

代理负责转发消息。

区别在于:代理替谁工作。


正向代理(Forward Proxy)

代理站在客户端这一边

客户端
  |
  v
正向代理
  |
  v
目标网站

例子:

你想访问一个网站,但是你不直接访问,而是:

你的电脑
    |
    v
公司代理服务器
    |
    v
互联网网站

网站看到的是:

访问者 = 公司代理服务器

它不知道真正的你是谁。

所以叫“正向”:

代理代表客户端向外请求。

方向:

客户端 ---> 外部服务器

代理帮客户端“向前走”。


反向代理(Reverse Proxy)

代理站在服务器这一边

比如 Gerrit:

用户
 |
 v
Nginx
 |
 v
Gerrit

用户访问:

https://gerrit.company.com

实际上:

用户请求
    |
    v
Nginx
    |
    v
Gerrit:8080

用户不知道后面还有 Gerrit。

所以叫“反向”:

代理代表服务器接收用户请求。

方向:

客户端 ---> 代理 ---> 后端服务器

代理把请求“反向送到内部”。


为什么叫“反向”?

因为传统代理是:

你找代理出去办事:

你
 |
 v
代理
 |
 v
外面的世界

代理保护的是你(客户端)

而反向代理:

外面的人找你:

外部用户
 |
 v
代理
 |
 v
你的服务器

代理保护的是服务器(后端)

方向刚好相反,所以叫反向代理。


用 Gerrit 举例

没有 Nginx:

用户
 |
 v
Gerrit:8080

用户直接找到 Gerrit。

有 Nginx:

用户
 |
 v
Nginx:443
 |
 v
Gerrit:8080

Nginx 像“门卫”:

  • 用户只看到门卫(Nginx)

  • 后面的 Gerrit 藏起来

  • 门卫决定请求交给哪个 Gerrit

这就是反向代理。

一句话记忆:

正向代理:代理客户端(我通过代理访问别人)。
反向代理:代理服务器(别人通过代理访问我)。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值