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


当前回答

转发代理服务于用户:它帮助用户访问服务器。

反向代理服务于服务器:它保护服务器不受用户影响。

其他回答

Cloudflare有一篇很棒的文章,其中有详细解释这一点的图片。检查此处:什么是反向代理?|代理服务器说明


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

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

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

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

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

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

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

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

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

从用户的角度看:向代理或反向代理服务器发送请求时:

proxy-需要两个参数:1)要获取什么,以及2)要使用哪个代理服务器反向代理-需要一个参数:1)获取什么

反向代理从用户不知道的另一个服务器获取内容,并返回结果,就像它来自反向代理服务器一样。

一对简单的定义是:

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

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

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

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

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