代理服务器和反向代理服务器之间的区别是什么?
当前回答
正向代理与反向代理(2012)非常清楚地解释了正向代理和反向代理之间的区别。
qyb2zm302的答案很好地详细描述了代理的应用,但它忽略了正向代理和反向代理之间的基本概念。对于反向代理,X→ Y→ Z、 X知道Y而不是Z,反之亦然。
代理只是通信(请求+响应)的中间人。客户端<->代理<->服务器
客户端代理:(客户端<->代理)<->服务器
代理人代表客户行事。客户知道链中涉及的所有三台机器。服务器没有。
服务器代理:客户端<->(代理<->服务器)
代理代表服务器行事。客户端只知道代理。服务器知道整个链条。
在我看来,正向和反向只是客户端和服务器代理的混淆、依赖于透视的名称。我建议放弃前者,改用后者,进行明确的沟通。
当然,让事情更复杂的是,并不是每台机器都是客户端或服务器。如果上下文中存在歧义,最好明确指定代理所在的位置以及它通过隧道传输的通信。
其他回答
最好的解释是这里的图表:
当正向代理代表客户端(或请求主机)时,反向代理代表服务器。
实际上,正向代理隐藏客户端的身份,反向代理隐藏服务器的身份。
让我们考虑一下服务的目的。
转发代理:
代理帮助用户访问服务器。
在反向代理中:
代理帮助用户访问服务器。
在后一种情况下,受代理帮助的人不再是用户,而是服务器,这就是我们称之为反向代理的原因。
代理服务器将传出的网络请求代理(并可选地缓存)到因特网上各种不一定相关的公共资源。反向代理捕获(并可选地缓存)来自Internet的传入请求,并将其分发到各种内部专用资源,通常用于高可用性目的。
我发现下图非常有用。它只是显示了通过Internet从客户端到服务器的正向和反向代理设置的架构。此图将帮助您更好地理解qyb2zm302的答案和其他答案。
您还可以观看由Peter Silva制作的F5的DevCentral视频。
图片来源:Quora。然而,根据Martijn Pieters的说法,这张图片可能来自Pulse Secure Community或Julien Pauli的网站(法语)developez.com。
这让我想起了一句经典的谚语:
一张图片值1000个字。
转发代理授予客户端匿名性(即,思考Tor)。
反向代理授予后端服务器匿名性(即,认为DMZ后面的服务器)。
推荐文章
- 有nginx access_log和error_log日志的STDOUT和STDERR的主进程
- 覆盖或覆盖
- 火灾vs. Webservice
- 为什么两个不同的概念都叫“堆”?
- 最好的轻量级web服务器(只有静态内容)的Windows
- 缓冲区是什么意思?
- BASE术语解释
- JavaBean和POJO之间的区别是什么?
- HTTP 1.1和HTTP 2.0的区别是什么?
- 如何从代理服务器后面更新Ruby Gems (ISA-NTLM)
- 如何在Apache服务器上自动将HTTP重定向到HTTPS ?
- 什么是端点?
- 字符、码位、字形和字素之间的区别是什么?
- “函数”和“过程”的区别是什么?
- 在子域上配置nginx的多个位置和不同的根文件夹