代理服务器和反向代理服务器有什么区别?
以前的答案是准确的,但也许太简洁了。我会尝试添加一些例子。
首先,“代理”一词描述了代表其他人行事的某人或某事。
在计算机领域,我们谈论的是代表另一台计算机的一台服务器。
出于可访问性的目的,我将讨论限制在Web代理中 - 但是,代理的概念不仅限于网站。
大多数关于Web代理的讨论都是指被称为“转发代理”的代理类型。
在这种情况下,代理事件是“转发代理”代表原始被请求者从另一个网站检索数据。
例如,我将列出连接到互联网的三台计算机。
通常,人们可以直接从X --> Z.
连接
但是,在某些情况下,Y --> Z
代表X
更好,其链如下:X --> Y --> Z
。
这是转发代理服务器的(非常)部分使用列表。
X
的互联网连接具有管理权限的人决定阻止所有访问网站Z
。
例子:
Storm蠕虫病毒通过欺骗人们访问familypostcards2008.com
而蔓延,因此系统管理员已阻止访问该网站以防止用户无意中感染自己。
一家大公司的员工在facebook.com
上浪费了太多时间,因此管理层希望在工作时间禁止访问。
当地一所小学不允许访问playboy.com
网站。
政府无法控制新闻的发布,因此它通过阻止wikipedia.org
这样的网站来控制对新闻的访问。见TOR或FreeNet。
b)Z
的管理员阻止了X
。
例子:
Z的管理员注意到来自X的黑客攻击尝试,因此管理员决定阻止X的IP地址(和/或netrange)。
Z是一个论坛网站。 X
正在向论坛发送垃圾邮件。 Z阻挡X.在本例中,我将列出连接到互联网的三台计算机。
通常,人们可以直接从X --> Z.
连接
但是,在某些情况下,Z
的管理员最好限制或禁止直接访问并强制访问者首先通过Y.因此,和以前一样,我们有Y --> Z
代表X
检索数据,其链接如下:X --> Y --> Z
。
与“转发代理”相比,这次有什么不同,这次用户X
不知道他正在访问Z
,因为用户X
只看到他正在与Y
进行通信。
服务器Z
对客户端是不可见的,只有反向代理Y
在外部可见。反向代理不需要客户端(代理)配置。
客户X
认为他只与Y
(X --> Y
)沟通,但现实是Y
转发所有通信(再次X --> Y --> Z
)。
在上述场景中,Z
有能力选择Y
。
代理(转发代理):当LAN上的计算机连接到访问Internet的代理服务器时。好处包括,只有服务器暴露在互联网上。外面的人无法直接访问计算机。转发代理可以通过缓存下载来改善用户的互联网访问。它们还可用于限制对某些站点的访问。此外,只有代理服务器需要公共地址,而不是连接到它的客户端。
反向代理:反向代理与正向代理相反。相反,它代表连接的服务器充当代理。用户不是直接访问远程服务器,而是通过反向代理并从那里定向到相应的服务器。只有反向代理才需要SSL证书,只需要一个公共IP地址,它可以处理传入请求的负载平衡,以增强整体用户体验。
普通转发代理是位于客户端和源服务器之间的中间服务器。为了从源服务器获取内容,客户端向代理命名原始服务器的代理发送请求作为目标,然后代理从源服务器请求内容并将其返回给客户端。客户端必须专门配置为使用转发代理来访问其他站点。
相反,反向代理(或网关)在客户端看起来就像普通的Web服务器一样。客户端无需特殊配置。客户端在反向代理的名称空间中对内容进行普通请求。然后,反向代理决定将这些请求发送到何处,并返回内容,就好像它本身就是源。
反向代理的典型用法是为Internet用户提供对防火墙后面的服务器的访问。反向代理也可用于平衡多个后端服务器之间的负载,或为较慢的后端服务器提供缓存。此外,反向代理可以简单地用于将多个服务器引入相同的URL空间。
欲了解更多信息,请访问:Apache Docs
这是一个很好的阅读,以了解正向和反向PROXY http://www.jscape.com/blog/bid/87783/Forward-Proxy-vs-Reverse-Proxy之间的差异
转发代理隐藏客户端(用户)的身份,而反向代理隐藏服务器的身份。
虽然从apache的角度来看我的理解是代理意味着如果站点x代理站点y,那么x的请求返回y。
反向代理意味着调整y的响应,以便对y的所有引用都变为x。
这样用户就无法判断是否涉及代理...
按照我的理解..........
首先,众所周知,代理意味着“代表他人的权力”。现在有两件事正向和反向代理。
FORWARD PROXY假设你想要访问“谷歌”和“谷歌”反过来将有n个服务器来响应该特定请求。
现在,在这种情况下,当您从谷歌请求某些内容并且您不希望谷歌查看您的IP地址时,您将使用转发代理,如下所述。
甲----->乙----->Ç
现在你在A通过B发送请求,所以C会认为请求来自B,而不是A.这样你就可以防止你的客户IP不暴露在外面。
反向代理。现在在这种情况下,为了让您了解我们将采用相同的转发代理案例。在这里,您已经请求了google的内容,而这些内容又会将一个请求发送到应用服务器或其他代理服务器以获取响应。所以这些事情将如下所述发生。
甲----->乙----->Ç
C------>D
C<------D
A <----- B <----- C从上图可以看出,请求已从B发送到C,而不是从A.然后从C发送一个请求发送到D.同样,响应将从D转到C然后转到B和A.
上图说明了它唯一的上下文,尽管两个代理的行为方式相同但客户端代理隐藏了客户端信息,而服务器端代理将隐藏服务器端信息。
如果您认为上述说明有误,请发表评论。
前向代理授予客户匿名性(即想想Tor)。
反向代理授予后端服务器匿名性(即,考虑DMZ后面的服务器)。
下面是反向代理(作为负载均衡器)的示例。
客户端浏览到website.com,它点击的服务器上运行了反向代理。反向代理恰好是pound。 Pound接收请求并将其发送到位于其后面的三个应用程序服务器之一。在这个例子中,Pound是一个负载均衡器。即。它正在平衡三个应用服务器之间的负载。应用程序服务器将网站内容提供给客户端。
正向代理服务用户:帮助用户访问服务器。
反向代理服务器服务器:保护服务器免受用户侵害
如果没有代理
to see from client side and server side are the same:
Client -> Server
代理
from client side:
Client -> proxy -> Server
from Server side:
Client -> Server
反向代理
from client side:
Client -> Server
from Server side:
Client -> proxy -> Server
所以我认为如果它由客户端用户设置,它称为代理;如果它由服务器管理器设置,则它是反向代理。
由于设置的目的和原因不同,它们以不同的方式处理数据并使用不同的软件。
User side | Server side
client <-> proxy <--> reverse_proxy <-> real server
一对简单的定义就是
转发代理:代表请求者(或服务消费者)代理
反向代理:代表服务/内容制作人代理。
从用户的角度来看,在向代理服务器或反向代理服务器发送请求时:
上面的大多数答案都是好的,但在我看来,没有一个能够很好地解决两者的“逆向”质量问题。要做到这一点,可以通过某种方式可视化基本上相同的事物(代理)的“反向”性质,并且需要以一种很好的抽象方式给出它。
代理(隐式“转发代理”)将多个本地客户端连接到任何一个远程服务器:
c--
|--p--s
c--
反向代理将多个本地服务器连接到任何一个远程客户端(请注意布局如何反转):
s--
|--p--c
s--
这是一个透视问题,真正正确地理解这个概念需要抽象掉非必要的(特定概念)细节,尽管它们在代理操作的语用学方面可能非常重要。这些细节包括以下事实:在两种情况下,现实情况是多个客户端连接到多个服务器,客户端和服务器可能实际上不是本地或远程的,因为Internet云位于其中,或者客户端和服务器之间存在何种可见性。
qyb2zm302的答案很好地详述了代理的应用程序,但在正向和反向代理之间的基本概念上滑倒了。对于反向代理,X - > Y - > Z,X知道Y而不是Z,而不是相反。
http://www.jscape.com/blog/bid/87783/Forward-Proxy-vs-Reverse-Proxy非常清楚地解释了正向和反向代理之间的区别。
代理只是沟通的中间人(请求+响应)。客户端< - >代理< - >服务器
在我看来,正向和反向只是令人困惑的,客户端和服务器代理的视角相关的名称。我建议放弃前者用于后者,以便进行明确的沟通。
当然,为了使问题进一步复杂化,并非每台机器都只是客户端或服务器。如果上下文中存在歧义,则最好明确指定代理所在的位置以及它所通过的通信。
一些图可能有所帮助:
转发代理
反向代理
差异主要在于部署。 Web转发和反向代理都具有相同的底层功能,它们接受各种格式的HTTP请求请求,并通常通过访问源或联系服务器来提供响应。
功能齐全的服务器通常具有访问控制,缓存和一些链接映射功能。
转发代理是通过配置客户端计算机访问的代理。客户端需要协议支持代理功能(重定向,代理身份验证等)。代理对用户体验是透明的,但对应用程序则不透明。
反向代理是作为Web服务器部署的代理,其行为类似于Web服务器,但不是在本地编写来自程序和磁盘的内容,而是将请求转发到源服务器。从客户端的角度来看,它是一个Web服务器,因此用户体验是完全透明的。
事实上,对于不同的客户群,单个代理实例可以同时作为前向和反向代理运行。
这是简短版本,我可以澄清人们是否想发表评论。
代理服务器将传出的网络请求代理(并且可选地高速缓存)到因特网上的各种不一定相关的公共资源。反向代理捕获(并可选地缓存)来自Internet的传入请求,并将它们分发到各种内部私有资源,通常用于高可用性目的。