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; }
本文暂时没有评论,来添加一个吧(●'◡'●)