目录
一、定义
1、正向代理(forward proxy)
2、反向代理(Reverse proxy)
3、透明代理(transparent proxy)
二、生活中代理的例子
1、正向代理
2、反向代理
三、代理的作用
1、正向代理的作用
2、反向代理的作用
目前大家提到的代理技术无外乎三种:正向代理、透明代理和反向代理
一、定义
1、正向代理(forward proxy)
客户端想要访问一个服务器,但是它可能无法直接访问这台服务器,这时候这可找一台可以访问目标服务器的另外一台服务器,而这台服务器就被当做是代理人的角色 ,称之为代理服务器,于是客户端把请求发给代理服务器,由代理服务器获得目标服务器的数据并返回给客户端。客户端是清楚目标服务器的地址的,而目标服务器是不清楚来自客户端,它只知道来自哪个代理服务器,所以正向代理可以屏蔽或隐藏客户端的信息。
2、反向代理(Reverse proxy)
从上面的正向代理,你会大概知道代理服务器是为客户端作代理人,它是站在客户端这边的。其实反向代理就是代理服务器为服务器作代理人,站在服务器这边,它就是对外屏蔽了服务器的信息,常用的场景就是多台服务器分布式部署,像一些大的网站,由于访问人数很多,就需要多台服务器来解决人数多的问题,这时这些服务器就由一个反向代理服务器来代理,客户端发来请求,先由反向代理服务器,然后按一定的规则分发到明确的服务器,而客户端不知道是哪台服务器。常常用nginx来作反向代理。
3、透明代理(transparent proxy)
透明代理也叫做内网代理(inline proxy)、拦截代理(intercepting proxy)以及强制代理(force proxy),所谓透明,即代理对客户端具有无感知性,即不需要客户端进行额外配置。
透明代理和正向代理基本相似,甚至是透明代理可以作为正向代理的一种。
透明代理技术经常作为一种备选模式存在,如在防火墙中作为策略,对部分流量进行过滤拦截;一般公司内的上网行为管理系统也是透明代理的应用。
另外如果有喜欢玩路由器的表哥应该接触过梅林、潘多拉系统,其中的代理模式对于网络使用者亦是透明代理的应用。
总的来说,只要是网关或主链路上的网络设备均可以实现透明代理模式,或者配合路由转发等技术搭配使用效果更佳。
二、生活中代理的例子
1、正向代理
就租房族来说吧( 不知道大家有没有租过房子 ,反正我只是个freshman!)据我所知,租房子这个活动中的参与者无外乎:
①租客(用户)、②中介(代理服务器)、③房东(国外网站,目标服务器)
租房子一般会很难找到房东(目标服务器),但是房东却会把房屋信息、钥匙给中介(代理服务器)。对于房东(目标服务器)来说,他可能不知道要租他房子的人(用户)是谁,他只知道中介(代理服务器)在联系他。
引入中介(代理服务器)其实也就是因为租客(用户)无法直接联系房东(目标服务器)
2、反向代理
还是租房子:假如没有中介:只有①房东、②二房东(放房东对外租房)、③租客,Web开发中就经常有这种反向代理:客户端(租客)发送请求到负载均衡服务器(二房东),负载均衡服务器(二房东)再把请求转发给一台真正的服务器(房东)来执行,再把执行结果返回给客户端(租客)
三、代理的作用
1、正向代理的作用
(1)突破自身IP访问界限(访问国外网站、教育网。。。)
(2)提高访问速度(通常代理服务器都会设置一个较大的硬盘缓冲区,会将部分请求的响应保存到缓冲区中,若其他用户访问相同信息时,直接从缓冲区中取出信息)
(3)隐藏用户的真是IP(上网者可通过这种方法隐藏自己的真实IP)
2、反向代理的作用
(1)隐藏服务器的IP(租客不知道房东的真身份)
(2)负载均衡(反向代理服务器根据真是服务器的负载情况,将客户端请求分别发到不同的真是服务器上。—>二房东发现房东很忙,于是找到了房东的妻子帮忙处理!)
(3)提高访问速度(反向代理服务器对短时间内有大量访问请求的动态内容提高缓存服务,—>二房东也会有钥匙呢!)
(4)提供安全保障(反向代理服务器也可以作为应用层防火墙,①、对网站提供基于Web的攻击的防护②、排查恶意软件、还可以为后端服务器提供加密和SSL加速(SSL终端代理))③、提供HTTP访问认证。