Nginx的负载均衡有4种模式:
1)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除 。
2)、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况 。
2)、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题 。
3)、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配 。
4)、url_hash(第三方)
配置方法:
打开nginx.cnf文件
在http节点下添加upstream节点:
【nginx的负载均衡如何配置】upstream webname {
server 192.168.0.1:8080;
server 192.168.0.2:8080;
}
其中webname是自己取的名字,最后会通过这个名字在url里访问的,像上面这个例子一样什么都不加就是默认的轮询,第一个请求过来访问第一个server,第二个请求来访问第二个server 。依次轮着来 。
upstream webname {
server 192.168.0.1:8080 weight 2;
server 192.168.0.2:8080 weight 1;
}
这个weight也很好理解,权重大的被访问的概率就大,上面这个例子的话,访问2次server1,访问一次server2
upstream webname {
ip_hash;
server 192.168.0.1:8080;
server 192.168.0.2:8080;
}
ip_hash的配置也很简单,直接加一行就可以了,这样只要是同一个ip过来的都会到同一台server上
然后在server节点下进行配置:
location /name {
proxy_pass http://webname/name/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
proxy_pass里面用上面配的webname代替了原来的ip地址 。
这样就基本完成了负载均衡的配置 。
下面是主备的配置:
还是在upstream里面
upstream webname {
server 192.168.0.1:8080;
server 192.168.0.2:8080 backup;
}
设置某一个节点为backup,那么一般情况下所有请求都访问server1,当server1挂掉或者忙的的时候才会访问server2
upstream webname {
server 192.168.0.1:8080;
server 192.168.0.2:8080 down;
}
设置某个节点为down,那么这个server不参与负载 。
推荐阅读
- 你真的掌握LVS、Nginx及HAProxy工作原理吗?
- Redis不只是缓存,还有n多种你没发现的妙用
- 8 种常被忽视的 SQL 错误用法
- 汝瓷的魅力
- Java中equals和==的区别,你知道吗?
- 一个老程序员的忠告:千万不要一辈子靠技术生存
- 适合前端初学者的JavaScript函数代码
- 微信小程序的推广方法集锦
- 吃羊绒大衣的虫子图片 羊绒大衣怎么防止虫蛀
- 新浪微博应对日访问量百亿级的缓存架构设计