建站个人网站,前端工程师是干什么的,建设工程合同无效工程价款的结算,做简历好的网站套用古龙武侠小说套路来说#xff0c;代理服务技术是一门很古老的技术#xff0c;是在互联网早期出现就使用的技术。一般实现代理技术的方式就是在服务器上安装代理服务软件#xff0c;让其成为一个代理服务器#xff0c;从而实现代理技术。常用的代理技术分为正向代理、反…套用古龙武侠小说套路来说代理服务技术是一门很古老的技术是在互联网早期出现就使用的技术。一般实现代理技术的方式就是在服务器上安装代理服务软件让其成为一个代理服务器从而实现代理技术。常用的代理技术分为正向代理、反向代理和透明代理。本文就是针对这三种代理来讲解一些基本原理和具体的适用范围便于大家更深入理解代理服务技术。 一正向代理(Forward Proxy) 一般情况下如果没有特别说明代理技术默认说的是正向代理技术。关于正向代理的概念如下正向代理(forward)是一个位于客户端【用户A】和原始服务器(origin server)【服务器B】之间的服务器【代理服务器Z】为了从原始服务器取得内容用户A向代理服务器Z发送一个请求并指定目标(服务器B)然后代理服务器Z向服务器B转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。 图1.1 从上面的概念中我们看出文中所谓的正向代理就是代理服务器替代访问方【用户A】去访问目标服务器【服务器B】这就是正向代理的意义所在。而为什么要用代理服务器去代替访问方【用户A】去访问服务器B呢这就要从代理服务器使用的意义说起。使用正向代理服务器作用主要有以下几点 1.访问本无法访问的服务器B如下图1.2 图1.2 我们抛除复杂的网络路由情节来看图1.2假设图中路由器从左到右命名为R1,R2。假设最初用户A要访问服务器B需要经过R1和R2路由器这样一个路由节点如果路由器R1或者路由器R2发生故障那么就无法访问服务器B了。但是如果用户A让代理服务器Z去代替自己访问服务器B由于代理服务器Z没有在路由器R1或R2节点中而是通过其它的路由节点访问服务器B那么用户A就可以得到服务器B的数据了。 2.加速访问服务器B 这种说法目前不像以前那么流行了主要是带宽流量的飞速发展。早期的正向代理中很多人使用正向代理就是提速。还是如图1.2假设用户A到服务器B经过R1路由器和R2路由器而R1到R2路由器的链路是一个低带宽链路。而用户A到代理服务器Z从代理服务器Z到服务器B都是高带宽链路。那么很显然就可以加速访问服务器B了。 3.Cache作用 Cache缓存技术和代理服务技术是紧密联系的不光是正向代理反向代理也使用了Cache缓存技术。还如上图所示如果在用户A访问服务器B某数据J之前已经有人通过代理服务器Z访问过服务器B上得数据J那么代理服务器Z会把数据J保存一段时间如果有人正好取该数据J那么代理服务器Z不再访问服务器B而把缓存的数据J直接发给用户A。这一技术在Cache中术语就叫Cache命中。如果有更多的像用户A的用户来访问代理服务器Z那么这些用户都可以直接从代理服务器Z中取得数据J而不用千里迢迢的去服务器B下载数据了。 4.客户端访问授权 这方面的内容现今使用的还是比较多的例如一些公司采用ISA SERVER做为正向代理服务器来授权用户是否有权限访问互联网。 图1.3 图1.3防火墙作为网关用来过滤外网对其的访问。假设用户A和用户B都设置了代理服务器用户A允许访问互联网而用户B不允许访问互联网这个在代理服务器Z上做限制这样用户A因为授权可以通过代理服务器访问到服务器B而用户B因为没有被代理服务器Z授权所以访问服务器B时数据包会被直接丢弃。 5.隐藏访问者的行踪 如下图1.4 我们可以看出服务器B并不知道访问自己的实际是用户A因为代理服务器Z代替用户A去直接与服务器B进行交互。如果代理服务器Z被用户A完全控制或不完全控制会惯以“肉鸡”术语称呼。 图1.4 总结下正向代理是一个位于客户端和原始服务器(origin server)之间的服务器为了从原始服务器取得内容客户端向代理发送一个请求并指定目标(原始服务器)然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须设置正向代理服务器当然前提是要知道正向代理服务器的IP地址还有代理程序的端口。 二反向代理reverse proxy 反向代理正好与正向代理相反对于客户端而言代理服务器就像是原始服务器并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求接着反向代理将判断向何处(原始服务器)转交请求并将获得的内容返回给客户端。 使用反向代理服务器的作用如下 1. 保护和隐藏原始资源服务器 图2.1 用户A始终认为它访问的是原始服务器B而不是代理服务器Z但实用际上反向代理服务器接受用户A的应答从原始资源服务器B中取得用户A的需求资源然后发送给用户A。由于防火墙的作用只允许代理服务器Z访问原始资源服务器B。尽管在这个虚拟的环境下防火墙和反向代理的共同作用保护了原始资源服务器B但用户A并不知情。 2.负载均衡 图2.2 当反向代理服务器不止一个的时候我们甚至可以把它们做成集群当更多的用户访问资源服务器B的时候让不同的代理服务器Zx去应答不同的用户然后发送不同用户需要的资源。当然反向代理服务器像正向代理服务器一样拥有CACHE的作用它可以缓存原始资源服务器B的资源而不是每次都要向原始资源服务器B请求数据特别是一些静态的数据比如图片和文件如果这些反向代理服务器能够做到和用户X来自同一个网络那么用户X访问反向代理服务器X就会得到很高质量的速度。这正是CDN技术的核心。 图2.3 我们并不是讲解CDN所以去掉了CDN最关键的核心技术智能DNS。只是展示CDN技术实际上利用的正是反向代理原理这块。反向代理结论与正向代理正好相反对于客户端而言它就像是原始服务器并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求接着反向代理将判断向何处(原始服务器)转交请求并将获得的内容返回给客户端就像这些内容原本就是它自己的一样。基本上网上做正反向代理的程序很多能做正向代理的软件大部分也可以做反向代理。开源软件中最流行的就是squid既可以做正向代理也有很多人用来做反向代理的前端服务器。另外MS ISA也可以用来在WINDOWS平台下做正向代理。反向代理中最主要的实践就是WEB服务近些年来最火的就是Nginx了。网上有人说NGINX不能做正向代理其实是不对的。NGINX也可以做正向代理不过用的人比较少了。 三透明代理 如果把正向代理、反向代理和透明代理按照人类血缘关系来划分的话。那么正向代理和透明代理是很明显堂亲关系而正向代理和反向代理就是表亲关系了。 透明代理的意思是客户端根本不需要知道有代理服务器的存在它改编你的request fields报文并会传送真实IP。注意加密的透明代理则是属于匿名代理意思是不用设置使用代理了。 透明代理实践的例子就是时下很多公司使用的行为管理软件。如下图3.1 图3.1 用户A和用户B并不知道行为管理设备充当透明代理行为当用户A或用户B向服务器A或服务器B提交请求的时候透明代理设备根据自身策略拦截并修改用户A或B的报文并作为实际的请求方向服务器A或B发送请求当接收信息回传透明代理再根据自身的设置把允许的报文发回至用户A或B如上图如果透明代理设置不允许访问服务器B那么用户A或者用户B就不会得到服务器B的数据。转载于:https://www.cnblogs.com/CQqf2019/p/11014717.html