“反向”这个词容易让人迷惑。理解它的关键是:看代理站在哪一边。
先理解“代理”是什么
代理就是:
中间人代替某一方去通信。
比如:
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
这就是反向代理。
一句话记忆:
正向代理:代理客户端(我通过代理访问别人)。
反向代理:代理服务器(别人通过代理访问我)。

1963

被折叠的 条评论
为什么被折叠?



