如何简单理解ngnix的反向代理

      一直都不太理解代理和反向代理的区别和使用场景,刚好看到了stackoverflow上的一个答案,全文翻译如下: 

   前一个答案是正确的,但是说的太简练了,我想加几个例子使得这两个概念更好理解一些。首先,代理的含义是某人或某物代表(扮演)另外一些人或者物。在计算机领域,我们常常使用的含义是某个服务(返回的结果)代表的是另一个计算机上的服务(返回的结果)。为了便于理解,我将仅限于讨论网络代理,然而,代理的思想却不仅仅限于网络。

   正向(前向)代理

   通常我们讨论的代理指的是正向代理。在一个正向代理请求事件中,请求的数据来自一个站点,该站点的数据可

以代表那个你想访问的站点的数据。代理事件,此处说的是正向代理事件,获取的数据是从另外一个站点获取的,该

站点返回的结果代表原(你想请求)站点返回的结果。

   三台电脑的故事(第一部分)

    举例说明,这里的三台电脑都能够连接到英特网。

    X:代表你的电脑,或者说是互联网上的一个客户端

    Y:代理站点,如proxy.example.org

    Z:你想访问的站点,如:www.example.net

    通常情况下,我们想要的是直接从X-->Z的连接,然而,在某些情景中,使用Y代表X访问Z更好,使得访问链变成

  了X-->Y-->Z那什么情况X会使用正向代理服务呢?下面列举了一些常用的正向代理服务:

     由于以下原因X不能直接连接到Z:

        (a) 管理员决定拒绝所有从X的网络发起的到Z的连接。

    例如:

        1).风暴蠕虫病毒通过诱骗人们访问familypostcards2008.com蔓延,所以系统管理员阻止访问该网站,防止            用户无意中感染自己。

        2).大公司的员工花费了太多时间去访问facebook.com,所以管理员希望在工作时间阻止该链接。

        3).本地的初中不允许连接到playboy.com网站

    4).政府不能够控制媒体发布的新闻,所以他们禁止某些新闻的获取,比如,政府禁止以下网站 

      wikipedia.org、TOR 、 FreeNet.

      (b)Z的管理员禁止了X

    例如:

        1).Z的管理员注意到了有从X发起的黑客攻击,所以管理员决定封掉X的ip地址或者网段。

        2).Z是一个论坛站点,X正在乱发帖,Z禁止了X

  反向代理:

     三台电脑的故事(第二部分)

    举例说明,这里的三台电脑都能够连接到英特网。

    X:代表你的电脑,或者说是互联网上的一个客户端

    Y:代理站点,如proxy.example.org

    Z:你想访问的站点,如:www.example.net

    通常情况下,我们想要的是直接从X-->Z的连接然而,在某些情景下,Z的管理员更乐于限制或者不允许直接连

    接到Z,并强制访问者先要连接到Y。由于前一句提到的原因,我们获取到数据需要通过Y代表X访问Z,变成了       X-- >Y-->Z

    那这和正向连接相比有什么区别呢?区别是,这次X并不知道他访问的是Z,因为X仅仅只能看到他连接到的

    是Y。服务Z对于客户端(X)是不可见的,而正向代理中Y是对外可见的。反向代理要求在客户端(X)不进行任

    何的配置

    X仅仅知道,它是在和Y通信即X-->Y,但是实际上是Y转发所有的通信。使得通信又变成了X-->Y-->Z.

     哪些情况Z下建立这些反向代理呢?

     (a).Z想强制所有的网站流量先经过Y  

      1).Z是一个拥有数百万级用户的网站,但是,一个web服务并不能处理所有的流量,所以Z建立了许多个相同的

        服务,并设置一个反向代理,使得用户访问Z服务的时候,访问到的是距离用户最近的那个Z服务。这就

        是CND(内容分流)服务的一部分。

     比如:

        Apple Trailers 使用 Akamai,

        Jquery.com 网站的javascript 文件正在使用的CloudFront CDN (sample)等

     2)Z的管理员担心内容主机受到攻击,也不想直接公开暴露主服务

     比如:搜索恶性排名 ”Canadian Pharmacy” 看起来有好几千个服务,实际上只有几个服务,因此,关于投诉            仅仅关掉公共服务,而不是主服务。(大概是这个意思,是在是翻译不通了)

       (Owners of Spam brands such as "Canadian Pharmacy" appear to have thousands of servers, while            in reality having most websites hosted on far fewer servers. Additionally, abuse complaints            about the spam will only shut down the public servers, not the main server.

      由于上面的原因,Z选择了Y

    列出一些参考词汇:

    Content Delivery Network

      Lists of CDNs

      http://www.mytestbox.com/miscellaneous/content-delivery-networks-cdn-list/

      http://blog.streamingmedia.com/the_business_of_online_vi/2008/01/updated-list-of.html

      forward proxy software (server side)

      cgi-proxy

      phproxy (discontinued)

      glype

      Internet censorship wiki: List of Web Proxies

      reverse proxy software for HTTP (server side)

      apache mod_proxy (can also work as a forward proxy for HTTP)

      squid

      nginx (used on hulu.com, spam sites, etc.)

      HAProxy

      lighthttpd

      perlbal (written for livejournal)

      portfusion

      pound

      varnish cache (written by a freebsd kernel guru)

      repose

      reverse proxy software for TCP (server side)

      balance

      delegate

      pen

      portfusion

      pure load balancer (web site defunct)

      python director

      参见:

      Wikipedia - Content Delivery Network

      Wikipedia - Category:Reverse_proxy

      Wikipedia - Load Balancing

      Wikipedia - Scalability


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值