学习笔记(01):高并发下的Nginx性能优化实战-Nginx负载均衡(一)

立即学习:https://edu.csdn.net/course/play/27216/358406?utm_source=blogtoedu

Nginx 负载均衡:

1. 轮询法(默认)

• 将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载

upstream tomcat_server {
server 192.168.10.11:8080 weight=1;
server 192.168.10.12:8080 weight=1;
}

 2. 加权轮询法(weight )

• 不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同
• 给配置高、负载低的机器配置更高的权重,让其处理更多的请求
• 配置低、负载高的机器,给其分配较低的权重,降低其系统负载
• 加权轮询能很好地将请求顺序且按照权重分配到后端
• weight的值越大分配到的访问概率越高

upstream tomcat_server {
server 192.168.10.11:8080 weight=1;
server 192.168.10.12:8080 weight=2;
}

3. 源地址哈希法
• 根据获取客户端的IP地址,通过哈希函数计算得到一个数值
• 用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号
• 采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问
• 可以保证来自同一ip的请求被打到固定的机器上,可以解决session问题

upstream tomcat_server {
ip_hash;
server 192.168.10.11:8080 weight=1;
server 192.168.10.12:8080 weight=1;
}


4. 最小连接数法(least_conn)
• 由于后端服务器的配置不尽相同,对于请求的处理有快有慢,最小连接数法根据后端服务器当前的连接情况,动态地选取其中当前积压连接
数最少的一台服务器来处理当前的请求,尽可能地提高后端服务的利用效率,将负责合理地分流到每一台服务器

upstream tomcat_server {
least_conn;
server 192.168.10.11:8080 weight=1;
server 192.168.10.12:8080 weight=1;
}

5. Fair(需要安装插件)
• 比weight、ip_hash更智能的负载均衡算法
• 可以根据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配
• Nginx本身不支持fair,如果需要这种调度算法,则必须安装upsteram_fair模块

upstream tomcat_server {
fair;
server 192.168.10.11:8080 weight=1;
server 192.168.10.12:8080 weight=1;
}

6. url_hash(需安装插件)
• 按访问的URL的哈希结果来分配请求,使每个URL定向到一台后端服务器
• 可以进一步提高后端缓存服务器的效率
• Nginx本身不支持url_hash,如果需要这种调度算法,则必须安装Nginx的hash软件包

upstream tomcat_server {
hash $request_uri;
server 192.168.10.11:8080 weight=1;
server 192.168.10.12:8080 weight=1;
}
原创文章 79 获赞 62 访问量 10万+

猜你喜欢

转载自blog.csdn.net/qq_24598601/article/details/104270726