首页 文章

代理服务器和反向代理服务器之间的区别

提问于
浏览
1533

代理服务器和反向代理服务器有什么区别?

18 回答

  • 9

    Cloudflare有一篇很棒的文章,图片详细解释了这一点 . 请点击此处:https://www.cloudflare.com/learning/cdn/glossary/reverse-proxy/


  • 22

    虽然从apache的角度来看我的理解是代理意味着如果站点x代理站点y,那么x的请求返回y .

    反向代理意味着调整y的响应,以便对y的所有引用都变为x .

    这样用户就无法判断是否涉及代理......

  • 17

    这是一个很好的阅读,以了解正向和反向PROXY http://www.jscape.com/blog/bid/87783/Forward-Proxy-vs-Reverse-Proxy之间的差异

    转发代理隐藏客户端(用户)的身份,而反向代理隐藏服务器的身份 .

  • 35

    一些图可能有所帮助:

    Forward proxy

    Forward proxy

    Reverse proxy

    Reverse proxy

  • 50

    我发现这个图非常有用 . 它仅显示了通过Internet从客户端到服务器的 forward vs reverse 代理设置的体系结构 . 这张图片将帮助您更好地理解qyb2zm302的post和其他帖子 .

    您还可以观看Peter Silva的 F5DevCentral 中的this视频 .

    图片来源:Quora . 创建此图表的人员的所有信用 .

    它让我想起了经典的谚语:

    一张图片 Value 1000字 .

  • 68

    Proxy (Forward Proxy): 当LAN上的计算机连接到访问Internet的代理服务器时 . 好处包括,只有服务器暴露在互联网上 . 外面的人无法直接访问计算机 . 转发代理可以通过缓存下载来改善用户的互联网访问 . 它们还可用于限制对某些站点的访问 . 此外,只有代理服务器需要公共地址,而不是连接到它的客户端 .

    Reverse Proxy: 反向代理与正向代理相反 . 相反,它代表连接的服务器充当代理 . 用户不是直接访问远程服务器,而是通过反向代理并从那里定向到相应的服务器 . 只有反向代理才需要SSL证书,只需要一个公共IP地址,它可以处理传入请求的负载 balancer ,以增强整体用户体验 .

    图像来源:docs.microsoft.com

  • 2673

    差异主要在于部署 . Web转发和反向代理都具有相同的底层功能,它们接受各种格式的HTTP请求请求,并通常通过访问源或联系服务器来提供响应 .

    功能齐全的服务器通常具有访问控制,缓存和一些链接映射功能 .

    转发代理是通过配置客户端计算机访问的代理 . 客户端需要协议支持代理功能(重定向,代理身份验证等) . 代理对用户体验是透明的,但对应用程序则不透明 .

    反向代理是作为Web服务器部署的代理,其行为类似于Web服务器,但不是在本地编写来自程序和磁盘的内容,而是将请求转发到源服务器 . 从客户端的角度来看,它是一个Web服务器,因此用户体验是完全透明的 .

    事实上,对于不同的客户群,单个代理实例可以同时作为正向和反向代理运行 .

    这是短版本,我可以澄清人们是否想发表评论 .

  • 36

    下面是反向代理(作为负载均衡器)的示例 .

    客户端浏览到website.com,它点击的服务器上运行了反向代理 . 反向代理恰好是pound . Pound接收请求并将其发送到位于其后面的三个应用程序服务器之一 . 在这个例子中,Pound是一个负载均衡器 . 即 . 它正在 balancer 三个应用服务器之间的负载 . 应用程序服务器将网站内容提供给客户端 .

  • 21

    Proxy : It is making the request on behalf of the client . 因此,服务器将响应返回给代理,代理会将响应转发给客户端 . 事实上,服务器永远不会是客户端(客户端的IP),它只会知道代理 . 但是,客户端肯定知道服务器,因为它基本上格式化了发往服务器的HTTP请求,但它只是将它交给代理 .

    Reverse Proxy : It is receiving the request on behalf of the server . 它将请求转发到服务器,接收响应,然后将响应返回给客户端 . 在这种情况下,客户端永远不会"learn"谁是实际的服务器(服务器's IP) (with some exceptions), it will only know the proxy. The server will or won't知道实际的客户端,具体取决于反向代理的配置 .

  • 123

    Forward proxies 授予客户匿名性(即想想Tor) .

    Reverse proxies 授予后端服务器匿名性(即,考虑DMZ后面的服务器) .

  • 8

    普通的 forward proxy 是位于客户端和源服务器之间的中间服务器 . 为了从源服务器获取内容,客户端向代理命名原始服务器的代理发送请求然后,目标和代理从源服务器请求内容并将其返回给客户端 . The client must be specially configured to use the forward proxy to access other sites.

    相比之下, reverse proxy (or gateway) 对客户端来说就像普通的Web服务器一样 . 客户端无需特殊配置 . 客户端在反向代理的名称空间中对内容进行普通请求 . 然后,反向代理决定将这些请求发送到何处,并返回内容,就好像它本身就是源 .

    反向代理的典型用法是为Internet用户提供 access to a server that is behind a firewall. 反向代理也可用于 balancer 多个后端服务器之间的负载,或者为较慢的后端服务器提供缓存 . 此外,反向代理可以简单地用于将多个服务器引入相同的URL空间 .

    欲了解更多信息,请访问:Apache Docs

  • 295

    一对简单的定义就是

    远期代理:代表请求者(或服务使用者)代理

    反向代理:代表服务/内容制作人代理 .

  • 8

    最佳解释here附图:

    代表客户端 (forward proxy 代理或请求主机 ) ,代表服务器的 reverse proxy 代理

    实际上,虽然 forward proxy 隐藏了客户端的身份,但 reverse proxy 隐藏了服务器的身份

  • 2

    if no proxy to see from client side and server side are the same: Client -> Server proxy from client side: Client -> proxy -> Server from Server side: Client -> Server reverse proxy from client side: Client -> Server from Server side: Client -> proxy -> Server

    所以我认为如果它由客户端用户设置,它称为代理;如果它由服务器管理器设置,则它是反向代理 .

    由于设置的目的和原因不同,它们以不同的方式处理数据并使用不同的软件 .

    要么

    User side         |      Server side
    client  <->  proxy  <-> gate_server <->  reverse_proxy <-> realserver
    

    从“门服务器”的角度来看,一个是代理另一个是反向的 .

  • 6

    以前的答案是准确的,但也许太简洁了 . 我将尝试添加一些示例 .

    首先,“代理”一词描述了代表其他人行事的某人或某事 .

    在计算机领域,我们谈论的是代表另一台计算机的一台服务器 .

    出于可访问性的目的,我将讨论限制为Web代理 - 但是,代理的概念不仅限于网站 .

    FORWARD代理

    大多数关于Web代理的讨论都是指称为“转发代理”的代理类型 .

    在这种情况下,代理事件是“转发代理”代表原始被请求者从另一个网站检索数据 .

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

    例如,我将列出连接到互联网的三台计算机 .

    • X =您的计算机或互联网上的"client"计算机

    • Y =代理网站proxy.example.org

    • Z =您要访问的网站www.example.net

    通常,一个人可以直接从 X --> Z. 连接

    但是,在某些情况下,代表 XY --> Z 更好,其链如下: X --> Y --> Z .

    X想要使用转发代理服务器的原因:

    这是转发代理服务器的(非常)部分使用列表 .

    • 1)X无法直接访问Z,因为

    • a)对 X 的互联网连接具有管理权限的人决定阻止对网站 Z 的所有访问 .

    • 示例:

    • Storm蠕虫病毒正在通过欺骗人们访问 familypostcards2008.com 来传播,因此系统管理员已阻止访问该网站以防止用户无意中感染自己 .

    • 一家大公司的员工在 facebook.com 上浪费了太多时间,因此管理层希望在工作时间禁止访问 .

    • 当地一所小学不允许访问 playboy.com 网站 .

    • 政府无法控制新闻的发布,因此它通过阻止 wikipedia.org 等网站来控制对新闻的访问 . 见TORFreeNet .

    • b) Z 的管理员已阻止 X .

    • 示例:

    • Z的管理员注意到来自X的黑客攻击尝试,因此管理员决定阻止X的IP地址(和/或netrange) .

    • Z是一个论坛网站 . X 正在向论坛发送垃圾邮件 . Z阻挡X.

    REVERSE代理

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

    在本例中,我将列出连接到互联网的三台计算机 .

    • X =您的计算机,或互联网上的"client"计算机

    • Y =反向代理网站proxy.example.com

    • Z =您要访问的网站www.example.net

    通常,一个人可以直接从 X --> Z. 连接

    但是,在某些情况下, Z 的管理员最好限制或禁止直接访问并强制访问者首先通过Y.因此,和以前一样,我们有 Y --> Z 代表 X 检索数据,其链如下: X --> Y --> Z .

    与"forward proxy,"相比,这次的不同之处在于,这次用户 X 不知道他正在访问 Z ,因为用户 X 只看到他正在与 Y 进行通信 .
    服务器 Z 对客户端不可见,只有外部可见反向代理 Y . 一个反向代理在客户端不需要(代理)配置 .

    客户端 X 认为他只与 YX --> Y )通信,但现实是 Y 转发所有通信( X --> Y --> Z 再次) .

    Z想要设置反向代理服务器的原因:

    • 1)Z希望强制所有流量到其网站首先通过Y.

    • a)Z有一个庞大的网站,数百万人希望看到,但单个网络服务器无法处理所有流量 . 因此,Z设置了许多服务器,并在互联网上放置了一个反向代理,当用户尝试访问Z时,会将用户发送到最靠近他们的服务器 . 这是内容分发网络(CDN)概念如何工作的一部分 .

    • 示例:

    • Apple Trailers使用Akamai

    • Jquery.com使用CloudFront CDNsample)托管其javascript文件 .

    • 2)Z的管理员担心对服务器上托管的内容进行报复,并且不希望将主服务器直接暴露给公众 .

    • a)垃圾邮件品牌的所有者(如"Canadian Pharmacy")似乎拥有数千台服务器,而实际上大多数网站托管的服务器数量要少得多 . 此外,有关垃圾邮件的滥用投诉只会关闭公共服务器,而不是主服务器 .

    在上述场景中, Z 能够选择 Y .

    链接帖子中的主题:

    内容分发网络

    转发代理软件(服务器端)

    用于HTTP的

    反向代理软件(服务器端)

    用于TCP的

    反向代理软件(服务器端)

    另见:

  • 6

    根据我的理解..........

    首先,众所周知,代理意味着“代表他人的权力” . 现在有两件事正向和反向代理 .

    FORWARD PROXY假设你想要访问“谷歌”和“谷歌”反过来将有n个服务器来响应该特定请求 .

    现在,在这种情况下,当您从谷歌请求某些内容并且您不希望谷歌查看您的IP地址时,您将使用转发代理,如下所述 .

    甲----->乙----->Ç

    现在你在A通过B发送请求,所以C会认为请求来自B,而不是A.这样你就可以防止你的客户IP不暴露于外部世界 .

    反向代理 . 现在在这种情况下,为了让您了解我们将采用相同的转发代理案例 . 在这里,您已经请求谷歌的东西,而谷歌又将一个请求发送到应用服务器或另一个代理服务器以获得响应 . 所以这些事情将如下所述发生 .

    甲----->乙----->Ç

    C------>D
    
              C<------D
    

    A <----- B <----- C从上图可以看出,请求已从B发送到C,而不是从A.然后从C发送一个请求发送到D.同样,响应将从D转到C然后转到B和A.

    上图说明了它唯一的上下文,尽管两个代理的行为方式相同但客户端代理隐藏了客户端信息,而服务器端代理将隐藏服务器端信息 .

    如果您认为上述说明有误,请发表评论 .

  • 465

    qyb2zm302的答案很好地详细说明了代理的应用程序,但在正向和反向代理之间的基本概念上滑倒了 . 对于反向代理,X - > Y - > Z,X知道Y而不是Z,而不是相反 .

    http://www.jscape.com/blog/bid/87783/Forward-Proxy-vs-Reverse-Proxy非常清楚地解释了正向和反向代理之间的区别 .

    代理只是通信的中间人(请求响应) . 客户端< - >代理< - >服务器

    • 客户端代理: ( 客户端< - >代理 ) < - >服务器

    代理代表客户行事 . 客户了解链中涉及的所有3台机器 . 服务器没有 .

    • 服务器代理:客户端< - > ( 代理< - >服务器 )

    代理代表服务器行事 . 客户只知道代理 . 服务器知道整个链 .

    在我看来,正向和反向只是令人困惑的,客户端和服务器代理的视角相关名称 . 我建议放弃前者用于后者,以便进行明确的沟通 .

    当然,为了使问题进一步复杂化,并非每台机器都只是客户端或服务器 . 如果上下文中存在歧义,最好明确指定代理所在的位置以及代理的通信隧道 .

  • 197

    代理服务器将传出的网络请求代理(并且可选地缓存)到因特网上的各种不一定相关的公共资源 . 反向代理捕获(并可选地缓存)来自Internet的传入请求,并将它们分发到各种内部私有资源,通常用于高可用性目的 .

相关问题