Nginx负载均衡

nginx负载的几种方式,round robin 轮询,加权轮询,hash,random随机,least_conn(最小连接数法)
1、round robin 轮询
轮询是Nginx默认的策略,将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。

upstream Clusterservices01{
       server 192.168.43.151:8080;
       server 192.168.43.152:8080;
}
server {
    listen 80;
    server_name test.csctbb.com;
    root /app/nedy/test.csctbb.com/test;
    proxy_pass http://Clusterservices01;
 
}

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

upstream Clusterservices02{
       server 192.168.43.151:8080 weight=1;
       server 192.168.43.152:8080 weight=2;
       server 192.168.43.153:8080 weight=3;
}
server {
    listen 80;
    server_name test.csctbb.com;
    root /app/nedy/test.csctbb.com/test;
    proxy_pass http://Clusterservices02;
 
}

3、ip_hash(源地址哈希法)
根据获取客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客户端要访问服务器的序号。采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。

upstream Clusterservices03{
    ip_hash;
    server 192.168.43.151:8080 ;
    server 192.168.43.152:8080 ;
    server 192.168.43.153:8080 down;
    server 192.168.43.154:8080 down;
 
}
server {
    listen 80;
    server_name test.csctbb.com;
    root /app/nedy/test.csctbb.com/test;
    location ^~ /nedy/nedn {
    proxy_pass http://Clusterservices03;
 
    }
 
}

1)配置了策略为ip_hash,监听80端口的的nginx服务,其中当请求url 为/nedy/nedn时,会走ip_hash策略;
2)负载均衡的机器有四台,其中后两台末尾添加了down关键字,表示下线的意思。

url_hash(通过请求url进行hash,再通过hash值选择后端server),大文件的场景,可以设置缓存一个月时间,来节省下载时间

upstream Clusterservices03 {
    hash $request_uri;
    server 192.168.43.151:8080;
    server 192.168.43.152:8080;
    server 192.168.43.153:8080;
    server 192.168.43.154:8080;
 
}
server {
    listen 80 default;
    server_name test.csctbb.com;
    charset utf-8;
    location /bigfile {
    proxy_pass http://Clusterservices03;
 
    }  
}

4、random随机

通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。

upstream Clusterservices04 {
    random;
    server 192.168.43.151:8080;
    server 192.168.43.152:8080;
    server 192.168.43.153:8080;
    server 192.168.43.154:8080;
 
}
server {
    listen 80 default;
    server_name test.csctbb.com;
    charset utf-8;
    location /nedy {
    proxy_pass http://Clusterservices04;
 
    }  
}

5、least_conn(最小连接数法)

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

upstream Clusterservices05 {
    least_conn;
    server 192.168.43.151:8080;
    server 192.168.43.152:8080;
    server 192.168.43.153:8080;
    server 192.168.43.154:8080;
 
}
server {
    listen 80 default;
    server_name test.csctbb.com;
    charset utf-8;
    location /nedy {
    proxy_pass http://Clusterservices05;
 
    }  
}

#加载配置
nginx -s reload

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值