图解说说 正向代理、反向代理、透明代理


代理是互联网发展初期就有的一项技术,主要是通过在服务器上安装代理软件提供代理功能的。常见的代理主要有三类

  • 正向代理

  • 反向代理

  • 透明代理


有点迷糊吧,什么正向、反向了。其实我刚开始听到这个概率也是挺迷糊的,下面我们一起来详细了解下

正向代理

在没有特别说明的情况下,代理说的就是正向代理。

定义

正向代理(forward proxy)是位于客户端【用户A】原生服务器【服务器B】之间的代理服务器C

图解

600


从上图我们可以看出,所谓的正向代理 就是 代理服务器C 代替 用户A 访问 服务器B 。这就是正向代理存在的意义,那我为什么要代替 访问这种需求?

作用

  1. 用户A 本身 无法访问 服务器B:所谓的FQ(不敢写了,上次写了被**部分封站并警告了)

  2. Cache作用:Cache(缓存)技术和代理技术是密不可分(剧透下,反向代理也有缓存的作用),如果用户A 访问 服务器B 资源D之前,已经有用户通过代理服务器C访问了,那么代理服务器C可以将 资源D 保存一段时间。之后在保存有效期内 有人在访问 资源D ,代理服务器C 不在访问 服务器B,直接将保存的 资源 返回给 用户

  3. 隐藏访问着的行踪:服务器B 不知道 真真想访问 它的是 用户A ,认为是代理服务器B访问了

代表软件

  • Nginx

  • Squid

反向代理

反向代理(reverse proxy),刚好和正向代理相反,对于客户端而言,代理服务器就像真实服务器,客户端不需要进行任何设置。客户端 向 代理服务器 发送请求 ,代理服务器将 经过判断之后 将 请求 转发给 原始服务器

图解

600

作用

  1. 保护和隐藏原始服务器:对于用户A来讲 以为访问的是 服务器B、D、E,其实是代理服务器C。

  2. 负载均衡:假如 服务器B、D、E 是一样的业务服务器,代理服务器可能通过负载算法 均衡的将 请求 平均 转发给 服务器B、D、E。

代表软件

  • Nginx

  • Apache

  • LVS


PS:关于 负载均衡中,其实代理服务器也是可以有很多台的,通过智能DNS解析到不同的代理服务器去


总结一下 正向代理和反向代理的区别:正向代理代理的是用户,反向代理 代理的是服务器

透明代理

定义

透明代理是客户端根本不需要知道有代理服务器的存在,它改编你的request fields(报文),并会传送真实IP。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了,例如Garden 2程序。


很多上班的同学注意了,一般大点的公司都会有透明代理了,等于说 其实公司管理员是知道你每天 上网做了什么事情的,宝宝怕怕:(

代理 正向代理 反向代理 透明代理 CDN nginx lvs apache squid
编程浪子走四方:CodeRonin