负载均衡是指将传入的网络流量高效分发到一组后端服务器,也称为“服务器群”或“服务器池”。
现代高流量网站必须满足来自用户或客户端的数十万甚至数百万的并发请求,并快速、可靠地返回正确的文本、图像、视频或应用数据。为了经济高效地进行扩展以满足这些海量数据需求,现代计算最佳实践通常要求添加更多的服务器。
负载均衡器可以充当“流量指挥官”,它位于服务器的前面,负责将客户端请求路由到所有能够满足这些请求的服务器,同时最大限度地提高速度和容量利用率,并确保无任何服务器过载,以免出现性能下降。如果某台服务器发生故障,则负载均衡器会将流量重定向到其余的在线服务器。在将新服务器添加到服务器组后,负载均衡器会自动向该服务器发送请求。
通过这种方式,负载均衡器可执行以下功能:
负载均衡图
不同的负载均衡算法可提供不同的优势;负载均衡方法的选择取决于您的需求:
有关用户会话的信息通常存储在本地浏览器中。例如,在购物车应用中,用户购物车中的商品在用户准备购买之前可能会存储在浏览器级别。在购物会话期间更改接收客户端请求的服务器可能会引发性能问题或直接导致交易失败。在这种情况下,会话期间来自客户端的所有请求都必须发送到同一服务器。这就是所谓的“会话保持”。
好的负载均衡器能够按需处理会话保持。会话保持的另一个用例是,上游服务器将用户请求的信息存储在其缓存中以提高性能。切换服务器会导致信息再次获取,进而造成性能下降。
许多快速变化的应用需要不断添加或关闭新服务器。这在亚马逊云科技 (AWS) Elastic Compute Cloud (EC2) 等环境中十分常见,它们允许用户仅为实际使用的算力付费,同时还能够确保容量在响应流量峰值时快速扩展。在此类环境中,如果负载均衡器可以在不中断现有连接的情况下动态地从服务器组中添加或删除服务器,则大有裨益。
负载均衡器通常有两种形式:基于硬件和基于软件。基于硬件的解决方案的厂商将专有软件加载到其提供的机器(通常搭载专用处理器)上。为了处理日益增加的网站流量,您必须从厂商处购买更多或更大的机器。而软件解决方案通常在商用硬件上运行,因此更为经济、更加灵活。您可将软件安装到所选硬件上,或者安装在 AWS EC2 等云环境中。
负载均衡可在网络开放式系统互联 (OSI) 参考模型中的各层执行。
七层负载均衡比基于数据包的四层负载均衡占用更多的 CPU,但却很少导致现代服务器性能下降。七层负载均衡支持负载均衡器做出更明智的负载均衡决策,并可对内容进行优化和更改。
有关负载均衡的更多信息,请参阅:NGINX Plus Admin Guide。
作为出色的负载均衡解决方案,NGINX Plus 和 NGINX在 Dropbox、Netflix 和 Zynga 等高流量网站中有着广泛的应用。全球超过 3.5 亿个网站都使用 NGINX Plus 和 NGINX 开源版快速、可靠、安全地交付内容。
作为基于软件的负载均衡器,NGINX Plus 的成本比具有类似功能的基于硬件的解决方案低得多。NGINX Plus 的全面负载均衡功能可帮助您建立高度优化的应用交付网络。
通过将 NGINX Plus 作为负载均衡器部署在应用和 Web 服务器群的前面,您可以提高 Web 应用的效率、可靠性和性能。NGINX Plus 可帮助您最大限度地提高客户满意度和 IT 投资回报。