代理 正反向代理

代理服务技术是一门很古老的技术概念,在互联网早期出现就使用的技术。一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,达到代理的目的。

 

代理就是代理别人做某事。公司B提供咨询服务给客户A,因为某些原因我不想做(不太赚钱还特别操心)或不能做(法律限制),让第三方代理公司C代替去做咨询服务。

从不同角度看,在客户A眼里,第三方公司C就是公司咨询服务的正向代理,其实公司B露不露面都行(隐匿身份);在公司B的眼里,第三方公司C就是自己咨询服务的的反向代理。

如果公司B的咨询业务范围特别大,但是没有特别多的精力去每个方面都去经营,就让这些常用简单的业务外包出去,自己能潜心开展核心业务,降低自身的运营压力,同时由于常用业务给外包了,比自己照顾不过来客户提供较差的服务效果好多了,客户服务好评大大增加(外包公司提供了部分的业务处理功能)。公司A运营久了发现某项业务不赚钱,老是亏钱,于是让代理的外包公司不提供服务了,于是外包公司就开始限制客户的咨询反向了。这里就是正反向代理的概念和它的一些特性。

 

  • 正向代理(forward proxy

一般常用的就是正向代理,如下图,正向代理就是一个位于请求者A和被请求者B之间的服务器C,为了从原始服务器B取得内容,用户A向代理服务器C发送一个请求并指定目标(服务器B),然后代理服务器C向被请求者服务器B转交请求并将获得的内容返回给请求者。客户端必须要进行一些特别的设置才能使用正向代理。正向代理最大的特点是客户端非常明确要访问的服务器地址,服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端,正向代理模式屏蔽或者隐藏了真实客户端信息。

 

 

 

 正向代理简单来说就是替代请求者访问方目标服务器,这样显然就能想到正向代理在不同环境下代理的2个作用:

  1. 对于请求者A来说,如果A由于种种原因无法访问B,需要第三方C做桥梁,能够破除了访问路径的限制,比如vpn网关,FQ。
  2. 对于服务器B来说,由于距离请求者太远、路由表不稳定和复杂等原因,不能提供质量佳的服务,使用中间代理C提供一个中间节点,减少A和B之间的路由,降低了访问延迟,同时如果代理C还能缓存一些常用数据,还能减轻服务器B的资源压力,同时也能给请求者A一个良好的体验。
  3. 当然还能有其他的作用了,只要和网络有关的,就能做各种限制和隐藏访问/被访问的身份

 

  • 反向代理(reverse proxy

反向代理就是反过来,实际的服务器B让代理C替代它完成请求的接受,反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。这里的反向代理服务器C依据使用数据处理方式的不同有以下几个功能:

  1. 由于对外只用暴露出代理C的地址,代理C到真是服务器B之间可以达到隐匿B的目的,提高真实服务器的安全性
  2. 代理C提供常用数据的缓存,降低服务器B的资源使用的压力,提高客户A的访问质量
  3. 代理可以做访问数据的类型,做用户的行为管理

 

以上内容只是对于请求者向B访问的情况,如果B反过来向A交换数据,我们会发现代理的天然特性就提现出来了:

  1. 它能够隐藏访问者或是被访问者的真实身份(身份隐匿)
  2. 作为数据中间节点,可以做到流量控制、访问控制(不同地区的限制和不同数据查看权限的限制)

总结一下:

代理就是架设在客户和服务器之间的一个中间节点,它可以起到突破访问限制、提法访问速度、降低服务器资源压力的作用,如果在代理上做了相应的访问控制,还能做到各种访问限制,隐匿访问者和被访问者的身份的作用

 

 

 

Reference:正向代理和反向代理的区别

PS:

Nginx的正向、反向代理配置及区别

Nginx正反向代理、负载均衡等功能实现配置

posted @ 2020-03-05 22:32  AlexG  阅读(167)  评论(0编辑  收藏  举报