正向代理和反向代理

正向代理和反向代理 “反向”这个词容易让人迷惑。理解它的关键是看代理站在哪一边。先理解“代理”是什么代理就是中间人代替某一方去通信。比如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:8080Nginx 像“门卫”用户只看到门卫Nginx后面的 Gerrit 藏起来门卫决定请求交给哪个 Gerrit这就是反向代理。一句话记忆正向代理代理客户端我通过代理访问别人。反向代理代理服务器别人通过代理访问我。