代理是互联网发展初期就有的一项技术,主要是通过在服务器上安装代理软件提供代理功能的。常见的代理主要有三类
正向代理
反向代理
透明代理
有点迷糊吧,什么正向、反向了。其实我刚开始听到这个概率也是挺迷糊的,下面我们一起来详细了解下
正向代理
在没有特别说明的情况下,代理说的就是正向代理。
定义
正向代理(forward proxy)是位于客户端【用户A】和原生服务器【服务器B】之间的代理服务器C
图解
从上图我们可以看出,所谓的正向代理 就是 代理服务器C 代替 用户A 访问 服务器B 。这就是正向代理存在的意义,那我为什么要代替 访问这种需求?
作用
用户A 本身 无法访问 服务器B:所谓的FQ(不敢写了,上次写了被**部分封站并警告了)
Cache作用:Cache(缓存)技术和代理技术是密不可分(剧透下,反向代理也有缓存的作用),如果用户A 访问 服务器B 资源D之前,已经有用户通过代理服务器C访问了,那么代理服务器C可以将 资源D 保存一段时间。之后在保存有效期内 有人在访问 资源D ,代理服务器C 不在访问 服务器B,直接将保存的 资源 返回给 用户
隐藏访问着的行踪:服务器B 不知道 真真想访问 它的是 用户A ,认为是代理服务器B访问了
代表软件
Nginx
Squid
反向代理
反向代理(reverse proxy),刚好和正向代理相反,对于客户端而言,代理服务器就像真实服务器,客户端不需要进行任何设置。客户端 向 代理服务器 发送请求 ,代理服务器将 经过判断之后 将 请求 转发给 原始服务器
图解
作用
保护和隐藏原始服务器:对于用户A来讲 以为访问的是 服务器B、D、E,其实是代理服务器C。
负载均衡:假如 服务器B、D、E 是一样的业务服务器,代理服务器可能通过负载算法 均衡的将 请求 平均 转发给 服务器B、D、E。
代表软件
Nginx
Apache
LVS
PS:关于 负载均衡中,其实代理服务器也是可以有很多台的,通过智能DNS解析到不同的代理服务器去
总结一下 正向代理和反向代理的区别:正向代理代理的是用户,反向代理 代理的是服务器
透明代理
定义
透明代理是客户端根本不需要知道有代理服务器的存在,它改编你的request fields(报文),并会传送真实IP。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了,例如Garden 2程序。
很多上班的同学注意了,一般大点的公司都会有透明代理了,等于说 其实公司管理员是知道你每天 上网做了什么事情的,宝宝怕怕:(