我不清楚负载均衡器和反向代理之间的区别。它们似乎具有相同的行为:将传入的请求分发到后端服务器。
答案1
您的困惑是合理的 - 它们通常是同一件事。但并非总是如此。当您提到负载平衡器时,您指的是一种非常具体的东西 - 平衡两个或多个 Web 服务器之间的入站请求以分散负载的服务器或设备。但是,反向代理通常具有许多功能:
负载平衡:如上所述
缓存:它可以缓存来自其后面的 Web 服务器的内容,从而减少 Web 服务器上的负载,并将一些静态内容返回给请求者,而无需从 Web 服务器获取数据
安全性:它可以通过阻止互联网直接访问来保护 Web 服务器;它可能通过简单的方式做到这一点,只需混淆 Web 服务器,或者它可能有一些更活跃的组件来实际审查入站请求以寻找恶意代码
SSL 加速:使用 SSL 时,它可以作为这些 SSL 会话的终止点,以便处理加密的工作负载从 Web 服务器上卸载
我认为这涵盖了大部分内容,但可能还有一些其他功能我遗漏了。当然,看到设备或软件作为负载平衡器/反向代理进行销售并不罕见,因为这些功能通常捆绑在一起。
答案2
此外,反向代理特定于 Web 服务器。
然而,负载平衡器可以处理许多其他协议。虽然网络(HTTP)是当今的主流,但 DNS、邮件(SMTP、IMAP)等也可以进行负载平衡。只是现在大多数人在想到“互联网”或“IP 网络”时,他们想到的是网络。还有很多东西可能更晦涩难懂,或者更狭隘。
答案3
虽然各种负载均衡器和反向代理之间的最终结果(在服务器之间分配请求)是相同的,但区别在于用于分配请求的方法。
一些负载平衡器使用 DNS 来平衡流量,以循环方式将同一名称解析为不同的 IP,从而有效地重定向请求。这在数据中心或其他物理位置之间平衡请求负载时通常很有用。如果您需要“即时”故障转移,这是一个糟糕的选择,因为您只能依靠客户端 DNS 服务器来遵守您提供的 TTL。思科的 GSS(全局站点选择器)是基于 DNS 的负载平衡的一个很好的例子。
其他负载平衡器的工作原理是将发往虚拟 IP 的数据包头重写为服务器场中服务器的真实 IP。这提供了实时负载平衡和近乎即时的故障转移。思科的 CSM(内容交换模块)就是一个例子
请注意,在上面两个例子中,客户端和服务器之间都有 TCP 对话。
反向代理的工作原理是代表 Web 服务器接受请求,然后将该请求回显到 Web 服务器并将其返回到客户端,如果有类似的请求,则可以选择缓存结果。
请注意,客户端实际上从未与 Web 服务器建立连接;相反,对话严格地发生在代理和客户端之间。