代理服务器和反向代理服务器之间的区别是什么?


当前回答

如果没有代理

从客户端和服务器端看是相同的:

客户端->服务器

代理

从客户端:

客户端->代理->服务器

从服务器端:

客户端->服务器

反向代理

从客户端:

客户端->服务器

从服务器端:

客户端->代理->服务器

所以我认为,如果它是由客户端用户设置的,它就叫做代理如果它由服务器管理器设置,则它是反向代理。

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

   User side          |      Server side
client  <->  proxy  <-->  reverse_proxy <-> real server

其他回答

正向代理与反向代理(2012)非常清楚地解释了正向代理和反向代理之间的区别。

qyb2zm302的答案很好地详细描述了代理的应用,但它忽略了正向代理和反向代理之间的基本概念。对于反向代理,X→ Y→ Z、 X知道Y而不是Z,反之亦然。

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

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

代理人代表客户行事。客户知道链中涉及的所有三台机器。服务器没有。

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

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

在我看来,正向和反向只是客户端和服务器代理的混淆、依赖于透视的名称。我建议放弃前者,改用后者,进行明确的沟通。

当然,让事情更复杂的是,并不是每台机器都是客户端或服务器。如果上下文中存在歧义,最好明确指定代理所在的位置以及它通过隧道传输的通信。

根据我的理解。。。

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

转发代理服务器

假设您想访问“Google”,那么“Google”将有n个服务器来响应特定请求。

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

A.→ B→ C

现在你是A,通过B发送请求。所以C会认为请求来自B,而不是A。通过这种方式,你可以防止客户端的IP地址暴露在外部世界。

反向代理

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

A.→ B→ C

C→ D

C← D

A.← B← C

从上图中,您可以看到一个请求已从B发送到C,而不是从a发送到C。然后从C将有一个请求发送到D。类似地,响应将从D发送到C然后发送到B和a。

上图表明,尽管两个代理的行为方式相同,但重要的只是上下文,但客户端代理隐藏客户端信息,而服务器端代理将隐藏服务器端信息。

最好的解释是这里的图表:

当正向代理代表客户端(或请求主机)时,反向代理代表服务器。

实际上,正向代理隐藏客户端的身份,反向代理隐藏服务器的身份。

一对简单的定义是:

转发代理:代表请求者(或服务使用者)

反向代理:代表服务/内容生产者行事。

下面是一个反向代理(作为负载平衡器)的示例。

一个客户端浏览到website.com,它访问的服务器上运行着一个反向代理。反向代理恰好是Pound。Pound接收请求并将其发送到位于其后面的三个应用服务器之一。在本例中,Pound是一个负载平衡器。也就是说,它正在平衡三个应用程序服务器之间的负载。

应用服务器将网站内容提供给客户端。