立即学习:https://edu.csdn.net/course/play/27216/358406?utm_source=blogtoedu
Nginx负载均衡
轮询法(默认)
将请求按照顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,不关心服务器实际的连接数和当前的系统负载
加权轮询法
不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此其抗压能力也不相同
给配置高、负载低的机器配置更高的权重,让其处理更多的请求
配置低、负载高的机器,给其分配较低的权重,降低其系统负载
加权轮询能很好的将请求顺序按照权重分配给后端服务器
weight(权重)值越大分配到的访问概率越高
源地址哈希法
根据获取客户端的IP地址,通过哈希函数计算得到一个数值
用该数值对服务器列表的大小进行取模运算,得到的结果便是客户端要访问服务器的序号
采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问
可以保证来自同一ip的请求达到固定的机器上,可以解决session问题
只需要在配置文件upstream中加上ip_hash
最小连接法
见文知义,将请求分配到连接数最少的服务器上
只需要在配置文件upstream中加上least_conn
Fair
比weight、ip_hash更加智能的负载均衡算法
此为第三方法则,Nginx本身并不支持,如果需要这种调度算法,需要安装upstream_fair模块
可根据页面大小和加载时间长短智能的进行负载均衡,即根据后端服务器响应时间进行分配
url_hash
按访问的URL的哈希结果来分配请求,使每个URL定向到一台后端服务器
可以进一步提高后端缓存服务器效率
Nginx本身不支持url_hash,如果需要这种调度算法,必须安装Nginx的hash软件包