Nginx 负载均衡4种模式

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/80541464
本文出自【赵彦军的博客】

4 种负载均衡算法

upstream 支持4种负载均衡调度算法:

A)轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器;

B)ip_hash:每个请求按访问IP的hash结果分配,同一个IP客户端固定访问一个后端服务器。可以保证来自同一ip的请求被打到固定的机器上,可以解决session问题。

C)url_hash:按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器。后台服务器为缓存的时候效率。

D)fair:这是比上面两个更加智能的负载均衡算法。此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。Nginx本身是不支持 fair的,如果需要使用这种调度算法,必须下载Nginx的 upstream_fair模块。

1、默认轮训

打开 nginx 配置文件

[root@master ~]# vi  /etc/nginx/conf.d/default.conf

写轮训配置

#设定负载均衡服务器列表
upstream roundrobin {
     #后端服务器访问规则
    server 192.168.1.115:8080  weight=1;       #server1
    server 192.168.1.131:8081  weight=1;       #server1
    server 192.168.1.94:8090   weight=1;       #server3
}

server {
        listen 80;
        server_name 192.168.1.131;
        location / {
                proxy_pass http://roundrobin;
        }
}

配置完成后

//检查 nginx 配置是否正确
nginx -t  

//重新加载 nginx 配置
service nginx reload 

当访问 http://192.168.131 的时候,会把这个请求负载到 192.168.1.1158080 端口、192.168.1.1158080 端口、192.168.1.1158080 端口。负载的权重由 weight 来决定,默认为 1 ,weight 越大,权重就越大。

2、基于hash

#设定负载均衡服务器列表
upstream roundrobin {
     #后端服务器访问规则
    ip_hash;                                   #添加参数支持哈希
    server 192.168.1.115:8080  weight=1;       #server1
    server 192.168.1.131:8080  weight=1;       #server1
    server 192.168.1.94:8090   weight=1;       #server3    
}

server {
        listen 80;
        server_name 192.168.1.131;
        location / {
                proxy_pass http://roundrobin;
        }
}

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

  • down,表示当前的server暂时不参与负载均衡。
  • backup,预留的备份机器。当其他所有的非backup机器出现故障或者忙的时候,才会请求backup机器,因 此这台机器的压力最轻。


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

#设定负载均衡服务器列表
upstream roundrobin {
    #后端服务器访问规则
    server 192.168.1.115:8080  weight=1;       #server1
    server 192.168.1.131:8080  down;           #server2 不参与负载
    server 192.168.1.94:8090   backup;         #server3 备份机   
}

server {
        listen 80;
        server_name 192.168.1.131;
        location / {
                proxy_pass http://roundrobin;
        }
}

参考文档

nginx四种调度算法、进阶


个人微信号:zhaoyanjun125 , 欢迎关注

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MQTT是一基于发布-订阅模式的轻量级消息传输协议,用于物联网设备之间的通信。而Nginx是一高性能的Web服务器,也可以用作反向代理和负载均衡器。下面是关于如何使用Nginx实现MQTT负载均衡的解释: MQTT负载均衡是指将接收到的MQTT消息分散到多个MQTT Broker(消息代理服务器)来处理,从而提高系统的可靠性和可扩展性。而Nginx可以作为一个反向代理服务器,将外部发起的MQTT连接请求转发给后端的MQTT Broker集群。Nginx能够根据配置文件中设置的负载均衡算法,将消息请求均匀地分发到多个Broker上,实现负载的分担和优化。 具体实现上,首先需要在Nginx配置文件中添加MQTT负载均衡的相关设置。例如,可以使用ip_hash算法来确保同一个客户端的请求始终会发送到同一个Broker上。然后,需要在后端配置多个MQTT Broker,并为每个Broker设置相应的权重,以根据服务器的性能选择合适的分发比例。 当客户端发起MQTT连接请求时,请求会先到达Nginx负载均衡器。Nginx会根据配置文件中设置的算法,将请求转发到后端的MQTT Broker。这样可以有效将请求分散到不同的Broker上,减轻单个Broker的负载压力,提高消息的处理速度和系统的稳定性。 总而言之,使用Nginx作为MQTT负载均衡器可以实现消息请求的分发和负载均衡,提高系统的可靠性和性能。这方案适用于大规模的MQTT应用场景,能够有效地提升系统的扩展性和可用性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值