题 Load Balancer和Reverse Proxy有什么区别?


我不清楚Load Balancer和Reverse Proxy之间的区别。它们似乎都具有相同的行为:将传入的请求分发给后端服务器。


104
2018-03-28 08:46






答案:


你的困惑是合理的 - 它们往往是一回事。但不总是。当您引用负载均衡器时,您指的是一个非常具体的东西 - 一台服务器或设备,它可以跨两个或多个Web服务器平衡入站请求以分散负载。但是,反向代理通常具有任意数量的功能:

  1. 负载平衡:如上所述

  2. 缓存:它可以缓存来自其后面的Web服务器的内容,从而减少Web服务器上的负载,并将一些静态内容返回给请求者,而无需从Web服务器获取数据

  3. 安全性:它可以通过阻止来自互联网的直接访问来保护Web服务器;它可以通过简单的方式通过混淆Web服务器来实现这一点,或者它可能有一些更活跃的组件来实际查看寻找恶意代码的入站请求

  4. SSL加速:使用SSL时;它可以作为这些SSL会话的终止点,以便从Web服务器卸载处理加密的工作量

我认为这涵盖了大部分内容,但可能还有其他一些我错过的功能。当然,将设备或软件作为负载均衡器/反向代理进行销售的情况并不少见,因为这些功能通常捆绑在一起。


100
2018-03-28 09:04



+连接池(当后端不能很好地处理它时,在一个前端连接上允许多个请求;或者为多个前端连接重用后端连接) - kubanczyk


此外,反向代理特定于Web服务器。

然而,负载平衡器可以处理许多其他协议。虽然网络(HTTP)是当今最重要的想法,但DNS,邮件(SMTP,IMAP)等东西也可以进行负载平衡。现在,当大多数人认为“互联网”或“IP网络”时,他们会想到网络。那里有更多的东西可能更加模糊,或更多的利基。


23
2018-03-28 17:55





虽然最终结果(在服务器之间分配请求)在各种负载平衡器和反向代理之间是相同的,但区别在于用于分发请求的方法。

一些负载均衡器使用DNS平衡流量,在循环中将相同的名称解析为不同的IP,从而有效地重定向请求。当在数据中心或其他物理位置之间进行负载平衡请求时,这通常很有用。如果您需要“即时”故障转移,这是一个糟糕的选择,因为您受到客户端DNS服务器的支配,以兑现您提供的TTL。思科的GSS(全球站点选择器)是基于DNS的负载平衡的一个很好的例子。

其他负载平衡器通过将发往虚拟IP的数据包标头重写到服务器场中服务器的真实IP来工作。这提供了实时负载平衡和近乎即时的故障转移。这方面的一个例子是思科的CSM(内容交换模块)

请注意,在上述两个示例中,客户端和服务器之间都存在TCP对话。

反向代理通过代表Web服务器接受请求然后将该请求回送给Web服务器并将其返回给客户端来工作,如果跟随类似的请求,则可选地缓存结果。

请注意,客户端实际上从未建立与Web服务器的连接;相反,对话严格地在代理和客户之间进行。


12
2018-03-28 17:39





负载均衡器可以平衡从第3层向上到第7层的流量,但反向代理是HTTP特定的。


3
2017-11-02 08:49





一个 反向代理 接受客户的请求, 将它转发到可以实现它的服务器,并返回服务器对客户端的响应(这意味着反向代理服务器后面的服务器可以与协议或不同协议的某些不同功能进行通信)。

一个 负载均衡器  在一组服务器之间分配传入的客户端请求,在每种情况下将响应从所选服务器返回到适当的客户端。


3
2017-09-23 07:30



所以你的意思是负载均衡器是分配的“反向代理”必不可少的? - Anthony Kong
这是一个直接的重复 nginx.com/resources/glossary/reverse-proxy-vs-load-balancer 要么他们偷了你的答案,要么你应该参考你的来源 - icc97