正向代理与反向代理

正向代理与反向代理

为什么使用代理

代理服务器(proxy server)提供代理服务的电脑系统或其它类型的网络终端,代替网络用户去取得网络信息,它有以下几点作用:

  • 提高访问速度:由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门网站能明显提高访问速度。
  • 防火墙作用:由于所有的客户机请求都必须通过代理服务器访问远程站点,因此可以在代理服务器上设限,过滤掉某些不安全信息。同时正向代理中上网者可以隐藏自己的IP,免受攻击。
  • 突破访问限制:互联网上有许多开发的代理服务器,客户机在访问受限时,可通过不受限的代理服务器访问目标站点,通俗说,我们使用的翻墙浏览器就是利用了代理服务器,可以直接访问外网。

在计算机世界,代理又可分为正向代理和反向代理,比如著名的FQ软件Shadowsocks就是一款正向代理软件,全世界前1000的高流量网站都在用的Web服务器Nginx作为反向代理服务器,那么两者之间究竟有什么区别?

正向代理

概述

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

这就类似一个跳板机,代理访问外部资源:

举个例子:我访问不了某网站,但是我能访问一个代理服务器,而这个代理服务器能访问那个我不能访问的网站。于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。

作用

  • 访问原来无法访问的资源,如google
  • 可以做缓存,加速访问资源
  • 对客户端访问授权,上网进行认证
  • 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

反向代理

概述

反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

作用

1、保证内网的安全,可以使用反向代理提供WAF功能,阻止web攻击。大型网站,通常将反向代理作为公网访问地址,Web服务器是内网。

2、负载均衡,通过反向代理服务器来优化网站的负载。

两者区别

备注:正向代理–HTTP代理为多个人提供翻墙服务;反向代理–百度外卖为多个商户提供平台给某个用户提供外卖服务。

位置不同:

  • 正向代理,架设在客户机和目标主机之间;
  • 反向代理,架设在服务器端;

代理对象不同:

  • 正向代理,代理客户端,服务端不知道实际发起请求的客户端;
  • 反向代理,代理服务端,客户端不知道实际提供服务的服务端;

用途不同 :

  • 正向代理,为在防火墙内的局域网客户端提供访问Internet的途径;
  • 反向代理,将防火墙后面的服务器提供给Internet访问;

安全性不同:

  • 正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此必须采取安全措施以确保仅为授权的客户端提供服务;
  • 反向代理都对外都是透明的,访问者并不知道自己访问的是哪一个代理。