JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Nginx负载均衡策略

wys521 2024-09-12 23:23:57 精选教程 41 ℃ 0 评论

Nginx提供的负载均衡策略有2种:

内置策略和扩展策略。内置策略为轮询(默认),加权轮询,Ip hash,第三方。

一、热备

如果你有2台服务器,当一台服务器发生事故时,才启用第二台服务器给提供服务。服务器处理请求的顺序:AAAAAA突然A挂啦,BBBBBBBBBBBBBB.....

upstream mysvr { 
 server 127.0.0.1:7878; 
 server 192.168.10.121:3333 backup; #热备 
 }

二、负载均衡

1、轮询:每个请求按照时间顺序逐一的分配到每一个后台服务器上。如果某台服务器宕机了,将会自动的剔除宕机的服务。nginx默认就是轮询其权重都默认为1,服务器处理请求的顺序:ABABABABAB....

upstream mysvr { 
 server 127.0.0.1:7878;
 server 192.168.10.121:3333; 
 }

2、加权轮询(weight):跟据配置的权重的大小而分发给不同服务器不同数量的请求。如果不设置,则默认为1。下面服务器的请求顺序为:ABBABBABBABBABB....

 upstream mysvr { 
 server 127.0.0.1:7878 weight=1;
 server 192.168.10.121:3333 weight=2;
}

3、IP哈希(ip_hash):nginx会让相同的客户端ip请求相同的服务器,可以解决session不共享的问题。

upstream mysvr { 
 server 127.0.0.1:7878; 
 server 192.168.10.121:3333;
 ip_hash;
 }

4、第三方(fair):Nginx本身不支持fair,如果需要这种调度算法,则必须安装upstream_fair模块。按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream backend { 
 server 192.168.0.1:88; 
 server 192.168.0.2:80; 
 fair; 
}

5、第三方(url_hash):Nginx本身不支持url_hash,如果需要这种调度算法,则必须安装Nginx的hash软件包。按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器。

注意点:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法。

upstream backend { 
 server 192.168.0.1:88; 
 server 192.168.0.2:80; 
 hash $request_uri; 
 hash_method crc32; 
}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表