Nginx负载均衡原理简介:
将多个服务器节点绑定在一起提供统一的服务入口。
故障转移,在意外发生的时候,可以增加一层保险,减少损失。
降低上线运维复杂度,实现平滑上线。运维和开发同学都喜欢。
nginx 的 upstream目前支持 4 种方式的分配
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
5、url_hash(第三方)
实现方式:我用的是第一种 默认轮询方式
我是用了三台服务器进行测试
条件:
1、一台主服务器,两台从服务器
2、三台从服务器一样的代码,并且三台服务器部署项目用 主服务器的部署的域名(其实主服务器不需要代码,直接改配置)
操作:
在upstream 下面的server 里面不要添加主服务器ip 加了就会陷入循环
注:要把这个注释掉
upstream 每个设备的状态:
1.down 表示单前的server暂时不参与负载
2.weight 默认为1.weight越大,负载的权重就越大。
3.max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误
4.fail_timeout:max_fails次失败后,暂停的时间。
5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。