文章目录

  • 正向代理
  • 反向代理



先放个链接, 正向代理和反向代理一直很晕乎, 看了这个博客感觉写的特别的好, 推荐

Anker - 正向代理和方向代理的总结


  • 无论正向代理还是反向代理, 请求模型其实是一致的, 如图所示
  • 我们假设用户为 A, 代理服务器为 B, 实际处理请求的服务器为 C
    ① A 向 B 发起请求
    ② 如果有相应的结果, 直接返回给 A 如果没有, B 向 C 发起请求
    ③ C 响应请求, 把结果返回给 B
    ④ B 将结果返回给 A
  • 正向代理, 框前两个; 反向代理, 框后两个

正向代理和反向代理_正向代理


正向代理

  • 通常是配置在客户端
  • 情景
  • A 知道 C 的存在, 但无法直接访问
  • A 知道 C 的存在, 但 C 响应速度太慢, 使用 B 提高响应速度
  • 由于是代理服务器发起请求, 实际服务器并不知道用户的存在, 对于实际服务器来说, 代理就是"用户"
  • 正向代理服务器可以作为缓存服务器, 加快返回给用户数据的速度

反向代理

  • 通常是配置在服务器端
  • 情景
  • A 通过访问 B 拿到访问 C 相同的结果
  • A 知道 C 的存在, 但无法直接访问
  • A 知道 C 的存在, 但 C 响应速度太慢, 使用 B 提高响应速度
  • 由于是代理服务器发起请求, A 大多数情况下并不知道 C 的存在, 对于用户来说, 代理就是"实际服务器"
    情境中的②和③, A 是知道 C 的存在的, 但是由于各种原因直接访问并不能很好的得到响应, 所以使用反向代理
    它和正向代理得到的效果是相同的, 只是配置位置不同, 一个在 client, 一个在 server
  • 反向代理可以作为 LoadBalance 存在