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

14

我在应用服务器与Web服务器之间的区别是什么?上读到了一篇很棒的文章。此外,代理服务器和反向代理服务器之间的区别解释得很好。

我还了解到,一些Web服务器(例如Apache)已经内置了反向代理。(来源)。另外,维基百科(https://en.wikipedia.org/wiki/Reverse_proxy)有一张图片显示Web服务器和反向代理作为分开的实体。

输入图像描述

来源:https://en.wikipedia.org/wiki/Reverse_proxy(图片最初由Privacy Canada提供,现在CC0,许可信息

因此,我不确定Web服务器和反向代理之间的区别。能否有人请解惑一下?


Cloudflare解释:反向代理是一个位于Web服务器前面的服务器,将客户端(例如Web浏览器)的请求转发到这些Web服务器。反向代理通常用于帮助提高安全性、性能和可靠性。 - undefined
2个回答

18

一个Web服务器监听HTTP请求并通过发送HTTP响应来做出反应。

反向代理是一个Web服务器,它通过实现HTTP客户端来确定要做出什么响应。

客户端A向反向代理发出HTTP请求。反向代理向服务器B发出HTTP请求。服务器B将HTTP响应发送给反向代理。反向代理将该数据作为其HTTP响应发送给客户端A。


@Quentin-感谢您的帮助。我有些困惑。您能否详细说明以下两点:a) web服务器监听HTTP请求并通过HTTP响应进行响应 b) web服务器还实现了HTTP客户端。如果您能提供流程,例如(我假设...请原谅我的无知)客户端-->反向代理-->web服务器-->应用服务器-->数据库,那将是非常好的。期待您的回复。 - watchtower
client --> reverse proxy which is a webserver --> other webserver --> wherever - Quentin
再次感谢您,昆汀。您能否详细说明“反向代理服务器(即Web服务器)”和“其他Web服务器”之间的区别?我知道其中一个区别与“反向代理服务器”作为客户端有关。还有哪些不同之处?我很好奇。 - watchtower
@watchtower - 没有其他区别。 - Quentin

4
一个代理服务器是一个中间服务器,它转发多个客户端请求内容到互联网上的不同服务器。反向代理服务器是代理服务器的一种,通常位于私有网络防火墙后面,并将客户端请求定向到适当的后端服务器。反向代理提供了额外的抽象和控制,以确保客户端和服务器之间的网络流量顺畅。
反向代理服务器的常见用途包括:
  1. 负载均衡 - 反向代理服务器可以充当“交通警察”,位于您的后端服务器前面,并将客户端请求分配到一组服务器上,以最大限度地提高速度和容量利用率,同时确保没有任何一个服务器过载,从而降低性能。如果一个服务器出现故障,负载均衡器会将流量重定向到其余在线服务器。
  2. Web加速 - 反向代理可以压缩入站和出站数据,以及缓存常请求的内容,这些都可以加速客户端和服务器之间的流量。他们还可以执行其他任务,例如SSL加密,以减轻您的Web服务器负担,从而提高其性能。
  3. 安全与匿名性 - 通过拦截发送到后端服务器的请求,反向代理服务器保护其身份,并作为安全攻击的额外防御。它还确保可以通过单个记录定位器或URL访问多个服务器,而不管本地区域网络的结构如何。
Web服务器存储并向请求其内容的客户端(例如文本、图像、视频和应用程序数据)提供网站内容。最常见的客户端类型是Web浏览器程序,当用户在浏览器中显示的页面上单击链接或下载文档时,它会从您的网站请求数据。
Web服务器使用超文本传输协议(HTTP)与Web浏览器进行通信。大多数Web页的内容都是使用超文本标记语言(HTML)编码的。内容可以是静态的(例如文本和图像)或动态的(例如计算出的价格或客户选择购买的物品列表)。为了提供动态内容,大多数Web服务器支持服务器端脚本语言来将业务逻辑编码到通信中。常用支持的语言包括Active Server Pages(ASP)、JavaScript、PHP、Python和Ruby。
Web服务器也可以缓存内容以加快常请求的内容的交付速度。这个过程也被称为Web加速。
Web服务器可以托管单个网站或使用相同的软件和硬件资源托管多个网站,这称为虚拟主机。Web服务器还可以限制对不同客户端的响应速度,以防止单个客户端主导更好用于满足大量客户端请求的资源。
虽然Web服务器通常托管在Internet上可访问的网站,但它们也可以用于在诸如公司内部网络的本地区域网络中的Web客户端和服务器之间进行通信。Web服务器甚至可以嵌入到数字相机等设备中,以便用户可以通过任何常用的Web浏览器与设备进行通信。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接