谈一谈正向代理和反向代理

前言

    小编在公司的技术分享中屡次听到正向代理和反向代理,对于Ngnix这一实现反向代理的服务器,是如何工做的呢?下面我们就一块儿了解一下。nginx

正文

什么是代理服务器(Proxy Serve)?

    提供代理服务的电脑系统或其它类型的网络终端,代替网络用户去取得网络信息。web

为何使用代理服务器?

  • 提升访问速度
        因为目标主机返回的数据会存放在代理服务器的硬盘中,所以下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的做用,尤为对于热门网站能明显提升访问速度。浏览器

  • 防火墙做用
        因为全部的客户机请求都必须经过代理服务器访问远程站点,所以能够在代理服务器上设限,过滤掉某些不安全信息。同时正向代理中上网者能够隐藏本身的IP,免受攻击。缓存

  • 突破访问限制
        互联网上有许多开发的代理服务器,客户机在访问受限时,可经过不受限的代理服务器访问目标站点,通俗说,咱们使用的翻墙浏览器就是利用了代理服务器,能够直接访问外网。安全

正向代理

     正向代理(forward proxy) ,一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并制定目标(原始服务器),而后代理向原始服务器转发请求并将得到的内容返回给客户端,客户端才能使用正向代理。咱们平时说的代理就是指正向代理。
    简单一点:A向C借钱,因为一些状况不能直接向C借钱,因而A想了一个办法,他让B去向C借钱,这样B就代替A向C借钱,A就获得了C的钱,C并不知道A的存在,B就充当了A的代理人的角色。
这里写图片描述服务器

反向代理

    反向代理(Reverse Proxy),以代理服务器来接受internet上的链接请求,而后将请求转发给内部网络上的服务器,并将从服务器上获得的结果返回给internet上请求的客户端,此时代理服务器对外表现为一个反向代理服务器。
    理解起来有些抽象,能够这么说:A向B借钱,B没有拿本身的钱,而是悄悄地向C借钱,拿到钱以后再交给A,A觉得是B的钱,他并不知道C的存在。
这里写图片描述网络

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

  • 位置不一样
    正向代理,架设在客户机和目标主机之间;
    反向代理,架设在服务器端;
  • 代理对象不一样
    正向代理,代理客户端,服务端不知道实际发起请求的客户端;
    反向代理,代理服务端,客户端不知道实际提供服务的服务端;
    这里写图片描述
    备注:正向代理–HTTP代理为多我的提供翻墙服务;反向代理–百度外卖为多个商户提供平台给某个用户提供外卖服务。
  • 用途不一样
    正向代理,为在防火墙内的局域网客户端提供访问Internet的途径;
    反向代理,将防火墙后面的服务器提供给Internet访问;
  • 安全性不一样
    正向代理容许客户端经过它访问任意网站而且隐藏客户端自身,所以必须采起安全措施以确保仅为受权的客户端提供服务;
    反向代理都对外都是透明的,访问者并不知道本身访问的是哪个代理。

正向代理的应用

    1. 访问原来没法访问的资源
    2. 用做缓存,加速访问速度
    3. 对客户端访问受权,上网进行认证
    4. 代理能够记录用户访问记录(上网行为管理),对外隐藏用户信息负载均衡

反向代理的应用

    1. 保护内网安全
    2. 负载均衡
    3. 缓存,减小服务器的压力
       Nginx做为最近较火的反向代理服务器,安装在目的主机端,主要用于转发客户机请求,后台有多个http服务器提供服务,nginx的功能就是把请求转发给后台的服务器,决定哪台目标主机来处理当前请求。svg

总结

    正向代理是从客户端的角度出发,服务于特定用户(好比说一个局域网内的客户)以访问非特定的服务;反向代理正好与此相反,从服务端的角度出发,服务于非特定用户(一般是全部用户),已访问特定的服务。
     代理的内容先了解到这里,感谢您的阅读,但愿提出宝贵意见。网站