Ngnix从基础(代理概念)

正向代理

  正向代理(forward)是一个位于客户端【用户A】和原始服务器(origin server)【服务器B】之间的服务器【代理服务器Z】,为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后代理服务器Z向服务器B转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理.

  使用正向代理的主要用途:

  1、访问本无法访问的服务器B

  2、Cache(缓存)技术和代理服务技术是紧密联系的(不光是正向代理,反向代理也使用了Cache(缓存)技术。
  还如上图所示,如果在用户A访问服务器B某数据J之前,已经有人通过代理服务器Z访问过服务器B上得数据J,那么代理服务器Z会把数据J保存一段时间,如果有人正好取该数据J,那么代理服务器Z不再访问服务器B,而把缓存的数据J直接发给用户A。这一技术在Cache中术语就叫Cache命中。如果有更多的像用户A的用户来访问代理服务器Z,那么这些用户都可以直接从代理服务器Z中取得数据J,而不用千里迢迢的去服务器B下载数据了

  3、客户端访问授权

  4、隐藏访问者的行踪

  示意图如下:

  Ngnix从基础(代理概念)_第1张图片

 

反向代理

  反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。

  使用方向代理的主要用途:

  1、保护和隐藏原始资源服务器

  2、负载均衡,示意图如下:

  Ngnix从基础(代理概念)_第2张图片

  

  当反向代理服务器不止一个的时候,我们甚至可以把它们做成集群,当更多的用户访问资源服务器B的时候,让不同的代理服务器Zx)去应答不同的用户,然后发送不同用户需要的资源。  

  当然反向代理服务器像正向代理服务器一样拥有CACHE的作用,它可以缓存原始资源服务器B的资源,而不是每次都要向原始资源服务器B请求数据,特别是一些静态的数据,比如图片和文件,如果这些反向代理服务器能够做到和用户X来自同一个网络,那么用户X访问反向代理服务器X,就会得到很高质量的速度。这正是CDN技术的核心。

  示意图如下:

  Ngnix从基础(代理概念)_第3张图片

 

透明代理

  如果把正向代理、反向代理和透明代理按照人类血缘关系来划分的话。那么正向代理和透明代理是很明显堂亲关系,而正向代理和反向代理就是表亲关系了 
   透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改编你的request fields(报文),并会传送真实IP。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了。 透明代理实践的例子就是时下很多公司使用的行为管理软件。

  Ngnix从基础(代理概念)_第4张图片

   用户A和用户B并不知道行为管理设备充当透明代理行为,当用户A或用户B向服务器A或服务器B提交请求的时候,透明代理设备根据自身策略拦截并修改用户AB的报文,并作为实际的请求方,向服务器AB发送请求,当接收信息回传,透明代理再根据自身的设置把允许的报文发回至用户AB,如上图,如果透明代理设置不允许访问服务器B,那么用户A或者用户B就不会得到服务器B的数据。

  备注:本文引用:http://bbs.51cto.com/thread-967852-1-1.html

你可能感兴趣的:(Ngnix从基础(代理概念))