在早期,网站的流量和业务功能相对简易,单台服务器就能满足基本需求。然而,伴随互联网的蓬勃发展,业务流量不断增大,业务逻辑也日趋复杂,单台服务器的性能瓶颈以及单点故障问题逐渐凸显。为解决这些问题,实现性能的水平扩展并避免单点故障,多台服务器协同工作成为必然。那么,关键问题来了,如何将不同用户的请求流量合理地分发到不同的服务器上呢?这就引出了负载均衡的概念。
一、负载均衡概述
负载均衡是一种将工作任务均匀分配到多个计算资源(如服务器、网络链路等)的技术,旨在提高系统的整体性能、可用性和可扩展性。
二、负载均衡的原理及处理流程
其原理在于通过某种算法或策略,根据服务器的负载情况,将客户端的请求动态地分配到不同的服务器上,以实现资源的最优利用和系统的高效运行。处理流程通常包括请求接收、负载评估、服务器选择和请求转发等环节。
三、负载均衡常用的处理方式
用户手动选择:用户根据自身需求手动选择服务器。
DNS 轮询方式:通过 DNS 服务器将域名解析到不同的 IP 地址,实现请求的分发。
四/七层负载均衡:在网络的不同层次进行负载均衡处理。网页搜218.0.48.3:8802
四、Nginx 七层负载均衡
Nginx 七层负载均衡的指令upstream 指令:用于定义服务器组。server 指令:配置服务器的相关参数。
Nginx 七层负载均衡的实现流程
负载均衡状态
负载均衡策略
五、负载均衡案例
案例一:对所有请求实现一般轮询规则的负载均衡。
案例二:对所有请求实现加权轮询规则的负载均衡。
案例三:对特定资源实现负载均衡。
案例四:对不同域名实现负载均衡。
案例五:实现带有 URL 重写的负载均衡。
六、Nginx 四层负载均衡
添加 stream 模块的支持。
Nginx 四层负载均衡的指令stream 指令。upstream 指令。
四层负载均衡的案例
领取专属 10元无门槛券
私享最新 技术干货