我不清楚Load Balancer和Reverse Proxy之间的区别。 他们似乎具有相同的行为:将传入的请求分发到后端服务器。
你的困惑是合理的 – 他们往往是一样的东西。 但并不总是。 当您引用负载平衡器时,您指的是一个非常具体的东西 – 一台服务器或设备,用于在两台或更多Web服务器之间平衡入站请求,以分散负载。 然而,反向代理通常具有许多特征:
负载平衡:如上所述
caching:它可以caching来自其后的Web服务器的内容,从而减lessWeb服务器的负载,并将一些静态内容返回给请求者,而不必从Web服务器获取数据,
安全性:它可以通过防止直接访问互联网来保护networking服务器; 它可以通过简单的方法通过简单的方式来完成这个工作,或者可能有更多的活动组件实际上审查入站请求寻找恶意代码
SSL加速:使用SSL时, 它可以作为这些SSL会话的端点,以便处理encryption的工作量从Web服务器卸载,
我认为这涵盖了大部分,但可能还有其他一些我错过的function。 当然,将一个设备或一个软件作为负载平衡器/反向代理销售是很常见的,因为这些function通常是捆绑在一起的。
此外,反向代理是特定于Web服务器。
然而负载平衡器可以处理很多其他的协议。 虽然networking(HTTP)是当今最大的想法,但DNS,邮件(SMTP,IMAP)等也可以进行负载平衡。 现在大多数人认为他们认为networking是“互联网”还是“IPnetworking”。 还有更多的东西可能会更晦涩,或更多的利基。
尽pipe各种负载均衡器和反向代理之间的最终结果(服务器之间的分配请求)是相同的,但差异在于用于分配请求的方法。
一些负载均衡器使用DNS来平衡stream量,以循环方式将相同的名称parsing为不同的IP,从而有效地redirect请求。 在数据中心或其他物理位置之间进行负载平衡请求时,这通常很有用。 如果您需要“即时”故障转移,这是一个糟糕的select,因为您受到客户DNS服务器的支配,无法兑现您提供的TTL。 思科的GSS(全球站点select器)是基于DNS的负载均衡的一个很好的例子。
其他负载平衡器通过将发往虚拟IP的包头重新写入场中服务器的真实IP来工作。 这提供了实时负载平衡和近乎即时的故障切换。 例如思科的CSM(内容交换模块)
请注意,在上述两个示例中,客户端和服务器之间都存在TCP会话。
反向代理的工作原理是代表Web服务器接受请求,然后将该请求回送给Web服务器并将其返回给客户端,如果类似请求出现,可以selectcaching结果。
请注意,客户端永远不会build立到Web服务器的连接; 而是谈话是严格的在代理和客户之间。
反向代理接受来自客户端的请求,将其转发给可以实现它的服务器,并将服务器的响应返回给客户端。
负载均衡器在一组服务器之间分配传入的客户端请求,每种情况下都将所选服务器的响应返回给相应的客户端。
负载均衡器可以将来自第3层的stream量向上平衡到第7层,但反向代理是HTTP特定的。