Nginx实现负载均衡的几种策略

Nginx实现负载均衡的几种方式

什么是负载均衡

将负载分发到不同的服务器上,就是我们说的负载均衡。
配置方式:

[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf

负载均衡的几种常用方式

1.轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

upstream backserver {
    server 192.168.0.1:8080;
    server 192.168.0.2:8080;
}
server {
        listen 80;
        server_name localhost;
        location / {
                proxy_pass http://backserver ;
        }
}

2.权重

指定每个服务的权重比例,weight和访问比率成正比,用于后端服务器性能不均的情况。将性能好的分配权重高来发挥服务器最大性能。轮询模式的默认权重都一样。

upstream backserver {
    server 192.168.0.1:8080 weight=3;
    server 192.168.0.2:8080 weight=7;
}

权重越高,在被访问的概率越大,如上例,分别是30%,70%。

3.iphash

每次请求都根据访问的hash结构分配,这样每次访客固定访问一个后端服务器。

upstream  backserver  {
       ip_hash; 
       server   192.168.0.1:8080 weight=1;
       server   192.168.0.1:8080 weight=1;
}

4.url_hash(第三方)

根据请求的url的hash值将请求分到不同的机器中,当后台服务器为缓存的时候效率高。
例如:

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

upstream backend {    
server squid1:3128;    
server squid2:3128;    
hash $request_uri;    
hash_method crc32;    
}

参考:https://www.cnblogs.com/DarrenChan/p/8967412.html

5.最少连接(第三方)

将请求分配到连接数最少的服务上。

upstream  backserver  {
       least_conn;
       server    192.168.0.1:8080 weight=1;
       server    192.168.0.2:8080 weight=2;
}

6.fair(第三方)

按照后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream  backserver  {
       fair;
       server    192.168.0.1:8080 weight=1;
       server    192.168.0.2:8080 weight=2;
}

设置后端负载均衡服务器的状态

  • 1.down:表示当前的服务暂时不参与负载。
  • 2.weight:默认为1 weight越大,负载的权重越大。
  • 3.max_fails:允许请求失败的次数默认为1,当超过最大次数时,返回proxy_next_upstream模块定义的错误。
  • 4.fail_timeout:max_fails次失败后,暂停的时间。
  • 5.backup:备份机,其他所有的非backup机器down或者忙时,请求backup机。
#设定负载均衡服务器列表
upstream backserver  {
    #后端服务器访问规则
    server 192.168.1.1:8080  weight=1;       #server1
    server 192.168.1.2:8080  down;           #server2 不参与负载
    server 192.168.1.3:8090  backup;         #server3 备份机   
}

server {
        listen 80;
        server_name 192.168.1.1;
        location / {
                proxy_pass http://backserver;
        }
}

注意:

  • backup不能和ip_hash同时配置。因为ip_hash只能访问同一台服务器,而backup是在只有所有参与
  • 负载均衡的服务器出现故障时,才会请求备份机。当所有负载均衡的服务器出现故障了,ip_hash的将无法 请求了。

参考:https://www.jianshu.com/p/4c250c1cd6cd

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值