在Nginx / Web服务器术语中,“反向代理”和“负载均衡”是什么?

12

这是我经常听到的两个短语,主要与 Nginx 相关。有人能给出通俗易懂的定义吗?


这是我经常听到的两个短语,主要与 Nginx 相关。有人能给出通俗易懂的定义吗?
3个回答

25

定义通常很难理解。我猜你只需要一些关于它们用途的解释。

简单地说,负载均衡是反向代理的功能之一,而反向代理是可进行负载均衡的软件之一。

下面给出一个详细的解释。

例如,贵公司的服务在英国和德国都有客户。由于这两个国家的政策不同,因此您的公司拥有两台 Web 服务器,uk.myservice.com 用于英国,de.myservice.com 用于德国,每个服务器都有不同的业务逻辑。此外,您的公司希望服务只有一个统一的终端点 myservice.com。在这种情况下,您需要设置反向代理作为统一的终端点。代理接收到 myservice.com 的 URL,并重写传入请求的 URL,以便来自英国(由源 IP 确定)的请求转到 uk.myservice.com,而来自德国的请求则转到 de.myservice.com。对于来自英国的客户端来说,它永远不知道响应实际上是由 uk.myservice.com 生成的。

在这种情况下,请求流量的负载实际上是平衡到 uk.myservice.com 和 de.myservice.com 上的服务器,作为副作用而产生的。因此,我们通常不称其为负载均衡器,仅称其为反向代理。

但是假设贵公司对所有国家使用相同的政策,并且有 2 台服务器 a.myservice.com 和 b.myservice.com,只是因为一个服务器机器的工作负载太重了。在这种情况下,我们通常将反向代理称为负载均衡器,以强调它被使用的原因。


6

以下是基本定义:

反向代理是一个代理主机,接收来自客户端的请求,并将其发送到自身后面的服务器之一。Nginx和apache httpd通常用作反向代理。这些位于为请求提供服务的Web服务器的管理网络中。

这与(正向)代理形成对比,后者位于客户端前面,并代表客户端向Web服务器发送请求。例如,您的企业网络地址转换器是正向代理。这些位于发出请求的客户端的管理网络中。

负载平衡是反向代理执行的功能。客户端请求由负载均衡器接收,并尝试将该请求发送到服务器池中的一个节点(主机),以尝试在各个节点之间平衡负载。


0

我认为它们都是HTTP/Web服务器功能的一部分。

负载均衡器的工作是以最佳方式分配服务器节点之间的工作负载。

反向代理是外部世界的接口,将请求转发到服务器节点(即使我们只有一个节点)。其其他用例包括静态内容缓存、压缩等。


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