nginx负载均衡策略有哪些?

Nginx 支持多种负载均衡策略,以下是一些主要的负载均衡算法:


1. 轮询 (Round Robin)


 这是 Nginx 默认的负载均衡策略。每个请求按照顺序分配给后台服务器列表中的服务器,下一个请求会被分发给列表中的下一个服务器,如此循环。

http {
    upstream nodes {
       192.168.26.150:80;
       192.168.26.151:80;
       192.168.26.152:80;             
    }
    server {
        listen 80;
        location / {
            proxy_pass http://nodes;  
       }
    }

}

将请求依次分发到这三个主机


2. 加权轮询 (Weighted Round Robin)


 类似于轮询,但允许为每个服务器分配一个权重值。权重高的服务器接收请求的频率更高。

http {
    upstream nodes {
       192.168.26.150:80 weight=1;
       192.168.26.151:80 weight=2;
       192.168.26.152:80 weight=3;    
    }
    server {
        listen 80;
        location / {
            proxy_pass http://nodes;  
       }
    }

}

如果有有六个请求,那么一次分配为1 , 2, 3对应权重的主机。

max_fails: 最大连接失败次数,到达指定次数后,该主机在fail_timeout时间内无效,如果fail_timeout时间设置为0,则表示永久无效。

fail_timeout: 默认是10秒,连接到达max_fails后,在设置时间内,不会将请求再分配给该台主机。

backup: 备份机,当所有的主机挂掉了,该主机才启用。

down:表示该主机不可用。

3. IP Hash

 根据客户端的IP地址进行哈希运算,然后根据得到的哈希值将请求映射到特定的服务器,这样同一个客户端的请求会被定向到同一台服务器上,有助于解决会话持久性问题。

4. 最少连接数 (Least Connections)

 将新请求分发给当前已建立连接数最少的服务器,这样可以尽量让服务器间的连接数保持平衡。

5. URL Hash 或者 Key-Value Hash

 根据请求的URL或者其他可配置的关键字进行哈希运算,将请求分配到固定的服务器,以便实现基于URL的会话持久化。

6. Fair(第三方模块,原生不支持)

 根据服务器的响应时间动态调整请求的分配,将请求更多地发送给响应速度更快的服务器。
在实际应用中,可以根据业务需求和服务器性能选择合适的负载均衡策略,并且可以组合使用这些策略来达到最优效果。

不过要注意,上述策略中可能不是所有策略都在标准Nginx安装中内置提供,某些策略可能需要额外的模块支持。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值