📄 一句话概括
把代理搬到服务器一侧就是反向代理:对客户端完全透明,看起来就是 Web 服务器——5.4.1 的缓存服务器正是它的典型,顺手还能做负载均衡。
📝 本节和前面几节的关系
5.4.3 的代理在客户端侧;本篇把它搬到服务器侧。
一、站在服务器侧
浏览器以为自己在访问 Web 服务器, 实际访问的是反向代理——它再转发给内部真实服务器; 客户端零设置、无感知。
二、一物三用
缓存(5.4.1 的缓存服务器就是典型)、 负载均衡(转发时把请求分给多台)、 安全屏障(真实服务器不直接暴露)。
三、动手 Demo:反向代理
把代理搬到服务器一侧,就成了反向代理:
for s in ['浏览器 -> 反向代理(看起来就是 Web 服务器) -> 内部服务器']:
print(s)
print()
print('客户端完全无感知——缓存服务器就是它的典型')
print('副业:把请求分给多台服务器,就成了负载均衡器')
实跑输出:
--------------------------------------------------------------------
反向代理
--------------------------------------------------------------------
把代理搬到**服务器一侧**,就成了反向代理:
浏览器 -> 反向代理(看起来就是 Web 服务器) -> 内部服务器
客户端完全无感知——上一节的**缓存服务器**就是它的典型。
顺手的副业:在代理上把请求分给多台服务器,
反向代理就成了负载均衡器(5.3)。
至此 5.3 与 5.4 两节打通了:负载均衡器与缓存服务器, 某种意义上是同一个位置的两种人格。
30 秒实验
- 用【谁受益】口诀分辨正向与反向代理。
- 想想反向代理怎么兼任负载均衡器。
- 查查 Nginx 作为反向代理的用法。
常见误区
- 以为反向代理要客户端设置——恰恰零设置。
- 以为它与负载均衡器是两种不相干设备——可以是同一个东西。
自测三问(点开对答案)
1. 反向代理站哪一侧? —— 服务器一侧。 2. 客户端需要设置吗? —— 不需要,完全透明。 3. 缓存服务器属于哪类代理? —— 反向代理。- ☐ 下一节(5.4.5 透明代理)
相关笔记
- 透明代理 — 第三种形态
- 使用负载均衡器分配访问 — 同一位置的另一种人格
- 🔌 网络是怎样连接的 · 索引