继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【金秋打卡】第10天 NGINX官方职业技能认证(NAA)-负载均衡

黑暗军兔
关注TA
已关注
手记 48
粉丝 9
获赞 6

`课程名称: NGINX官方职业技能认证(NAA),全国通用企业认可
课程章节:nginx负载均衡
课程讲师: 裴继奎
课程内容:NAA考试认证
课程介绍:
5-1 负载均衡概述及算法
5-2 upstream的参数
5-3 NGINX的会话保持
5-4 四七层负载均衡
5-5 location相关知识
5-6 NGINX负载中流量转发的行为
5-7 服务器获取真实客户端IP
5-8 变量相关指令
5-9 跨域访问及地址同源
5-10 NGINX改写请求响应
5-11 运维监控统计


一、为什么使用Nginx负载均衡

nginx负载均衡的好处有:
1、位于网络7层之上,能够对http应用做分流策略;
2、对网络稳定性的依赖不大;
3、安装、操作、配置简单;
4、能够承担高负载压力;
5、能够通过端口检测服务器内部故障;
6、不仅是负载均衡器,还是Web应用服务器;
7、能够当作中层反向代理;
8、可当作静态网页和图片服务器;
9、在nginx社区中第三方模块丰富。
图片描述

二、Nginx负载常用算法

图片描述

三、Nginx负载均衡详解

首先给大家说下upstream这个配置的,这个配置是写一组被代理的服务器地址,然后配置负载均衡的算法。这里的被代理服务器地址有2中写法。

upstream mysvr { 
      server 192.168.10.121:3333;
      server 192.168.10.122:3333;
    }
 server {
        ....
        location ~*^.+$ {         
           proxy_pass  http://mysvr;  #请求转向mysvr 定义的服务器列表 
        } 
``

upstream mysvr { 
      server  http://192.168.10.121:3333;
      server  http://192.168.10.122:3333;
 }
 server {
        ....
        location ~*^.+$ {         
           proxy_pass  mysvr;  #请求转向mysvr 定义的服务器列表         
        } 

然后,就来点实战的东西。

1、热备:如果你有2台服务器,当一台服务器发生事故时,才启用第二台服务器给提供服务。服务器处理请求的顺序:AAAAAA突然A挂啦,BBBBBBBBBBBBBB…

upstream mysvr { 
      server 127.0.0.1:7878; 
      server 192.168.10.121:3333 backup;  #热备     
    }

2、轮询:nginx默认就是轮询其权重都默认为1,服务器处理请求的顺序:ABABABABAB…

upstream mysvr { 
      server 127.0.0.1:7878; server 192.168.10.121:3333; 
    }

3、加权轮询:跟据配置的权重的大小而分发给不同服务器不同数量的请求。如果不设置,则默认为1。下面服务器的请求顺序为:ABBABBABBABBABB…

 upstream mysvr { 
      server 127.0.0.1:7878 weight=1;
      server 192.168.10.121:3333 weight=2;  
}

4、ip_hash:nginx会让相同的客户端ip请求相同的服务器。

u

pstream mysvr { 
      server 127.0.0.1:7878; server 192.168.10.121:3333; ip_hash;
    }

到这里你是不是感觉nginx的负载均衡配置特别简单与强大,下面是关于nginx负载均衡配置的几个状态参数讲解。
图片描述

  • down,表示当前的server暂时不参与负载均衡。

  • backup,预留的备份机器。当其他所有的非backup机器出现故障或者忙的时候,才会请求backup机器,因此这台机器的压力最轻。

  • max_fails,允许请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误。

  • fail_timeout,在经历了max_fails次失败后,暂停服务的时间。max_fails可以和fail_timeout一起使用。

 upstream mysvr { 
      server 127.0.0.1:7878 weight=2 max_fails=2 fail_timeout=2;
      server 192.168.10.121:3333 weight=1 max_fails=2 fail_timeout=1;    
    }

到这里应该可以说nginx的内置负载均衡算法已经没有货啦。如果你像跟多更深入的了解nginx的负载均衡算法,nginx官方提供一些插件大家可以了解下。

总结

ningx作为现在应用比较广泛的负载均衡功能,其还提供了强大的监控插件对服务进行全过程监控。
可以很好的提高我们工作效率:
课程截图
图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP