Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说nginx常用的5种负载均衡算法,希望能够帮助你!!!。
参考知乎地址:https://zhuanlan.zhihu.com/p/125085282
最近碰到数据库性能不足的问题,就搜了下结局方案,nginx负载简单明了,就顺便做了个笔记
stream {
server {
listen 3306;
proxy_pass db;
}
upstream db {
server 172.165.165.131:3306 weight=2 max_fails=2 fail_timeout=20;
server 172.165.165.132:3306 weight=3 max_fails=2 fail_timeout=30;
}
}
不得不吐槽的是,csdn上大部分都是复制粘贴(有的甚至原文都没看完的)党,找资料最好对比下知乎与博客园的。不然csdn上面你看到的三个全是复制的一个人写的。而人家真正的作者热度还没copy党的浏览量高。wdtmd
主死了,备用的顶上
upstream bakend {
server 192.168.0.14;
server 192.168.0.15 backup;
}
就是根据权重来分发请求到不同的机器中,指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
如果都没有weight参数则平均分配
upstream bakend {
server 192.168.0.14 weight=2;
server 192.168.0.15 weight=3;
}
根据请求者ip的hash值将请求发送到后台服务器中,可以保证来自同一ip的请求被打到固定的机器上,可以解决session问题
upstream bakend {
ip_hash;
server 192.168.0.14;
server 192.168.0.15;
}
down,表示当前的server暂时不参与负载均衡。
backup,预留的备份机器。当其他所有的非backup机器出现故障或者忙的时候,才会请求backup机器,因此这台机器的压力最轻。
max_fails,允许请求失败的次数,默认为1。当超过最大次数时,返回错误。
fail_timeout,在经历了max_fails次失败后,暂停服务的时间单位秒。max_fails可以和fail_timeout一起使用。
upstream test_server {
server 192.168.13.133:80 weight=2 max_fails=2 fail_timeout=2;
#加权轮询的权值是2,允许请求失败两次,然后暂停服务两秒
server 192.168.13.139:80 weight=3 max_fails=3 fail_timeout=3;
#加权轮询的权值是3,允许请求失败三次,然后暂停服务三秒
}
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
上一篇
已是最后文章
下一篇
已是最新文章