nginx负载几种方式
一、weight 权重
权重方式,在轮询策略的基础上指定轮询的几率。也可以认为是在轮询的基础上新增了一个weight的参数,此参数指定轮询的几率,值为number。upstream模块配置:
vim /etc/nginx/nginx.conf
在http 内添加如下配置:
upstream server1{
server 192.168.10.247:8089 weight=1;
server 192.168.15.240:8089 weight=1;
}
然后单个nginx配置如下:
server {
listen 80;
server_name xxx.xxx.com;
index index.html index.htm ;
location /mallapi/{
rewrite ^.+mallapi/?(.*)$ /$1 break;
include uwsgi_params;
proxy_set_header Host $host;
proxy_pass http://server1;
}
}
没有weight参数的服务器默认为1,weight的数值与访问比例成正比,所有weight值的总和为一个循环单位,服务器自身的weight值为循环单位内的轮询次数。
注意:1.权重越高分配到的请求越多;2.此策略可以和least_conn策略、iphash策略结合使用;3.此策略比较适合服务器硬件配置差距较大的情况;4.如果后端服务器down掉,能自动剔除。
二、主备配置
upstream server1{
server 192.168.1.116:80 down;
server 192.168.1.117:80 weight=2;
server 192.168.1.118:80;
server 192.168.1.119:80 backup;
}
配置详解:
down 表示当前的Web Server暂时不参与负载
weight 默认为1.weight越大,负载的权重就越大。
backup: 其它所有的非backup Server down或者忙的时候,请求backup机器。如果其中一台服务器宕机,则会请求当前服务器,主服务恢复后优先使用主服务器。
三、ip_hash
依据ip分配方式,指定负载均衡器按照基于客户端IP的分配方式,这个方法确保了相同的客户端请求一致发送到相同的服务器,以保证session会话。这样每个访客都固定访问一个后端服务器,可以解决session不能跨服务器的问题。
upstream server1{
ip_hash;
server 192.168.10.247:8089 weight=1;
server 192.168.15.240:8089 down;
server 192.168.15.242:8089;
}
四、least_conn 最少连接
最少连接方式,把请求发给链接数最少的后端服务器。轮询是把请求平均分配给各个后端,使它们的负载大致相同。但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果。
upstream server1{
least_conn;
server 192.168.10.247:8089 ;
server 192.168.15.240:8089 ;
}