Nginx负载均衡配置,常用策略,场景及特点
1.轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器。
- 优点:实现简单,不用配置
- 缺点:不考虑每台服务器的处理能力
upstream www.xxxx.com{
#tomcat1
server www.xxxx.com:8080;
#tomcat2
server www.xxxx.com:9080;
}
2.权重
比如现在有两台服务器,一台配置高,一台配置低。想让更多的请求打到配置较高的服务器上就可以通过配置权重的策略来实现。
- 优点:考虑了每台服务器的处理能力
- 缺点:分配权重时需要慎重
upstream www.xxxx.com{
#tomcat1
server www.xxxx.com:8080 weight=15;
#tomcat2
server www.xxxx.com:9080 weight=10;
}
注:weight默认=1,如果配置多个权重节点,比较相对值
3.ip hash
根据请求的ip地址进行hash,然后分配到指定的服务器上。
- 优点:能实现同一个用户访问同一个服务器(后端可以不做单点登录了)
- 缺点:根据ip hash分配不一定平均,且ip可能会变化
upstream www.xxxx.com{
ip_hash;
#tomcat1
server www.xxxx.com:8080;
#tomcat2
server www.xxxx.com:9080;
}
4.url hash(第三方)
需要安装第三方插件。根据请求的url进行hash,分配到指定的服务器上。
- 优点:能实现同一个服务访问同一个服务器
- 缺点:分配不平均,请求频繁的url会请求到同一服务器上
upstream www.xxxx.com{
#tomcat1
server www.xxxx.com:8080;
#tomcat2
server www.xxxx.com:9080;
hash $request_uri;
}
5.fair(第三方)
需要安装第三方插件。按后端服务器响应时间分配请求,响应时间短的优先分配
upstream www.xxxx.com{
#tomcat1
server www.xxxx.com:8080;
#tomcat2
server www.xxxx.com:9080;
fair;
}
负载均衡配置参数
upstream www.xxxx.com{
server www.xxxx.com:8080 down; #down 表示当前server不参与负载
server www.xxxx.com:9090 weight=2; #weight越大,负载权重越大
server www.xxxx.com:7070 backup; #backup 其他非backup的服务器down或在忙时,请求backup的服务器(类似备用机)
}
网友评论