1.轮询(默认)
优点:实现简单
缺点:不考虑每台服务器的处理能力
upstream www.baidu.com{
server www.baidu.com:8080;
server www.baidu.com:9080;
}
2.权重
优点:考虑了每台服务器处理能力的不同
upstream www.baidu.com{
server www.baidu.com:8080 weight=15;
server www.baidu.com:9080 weight=10;
}
3. ip hash
优点:能实现同一个用户访问同一个服务器
缺点:根据ip hash不一定平均
upstream www.baidu.com{
ip_hash;
server www.baidu.com:8080;
server www.baidu.com:9080;
}
4.url hash(第三方)
优点:能实现同一个服务访问同一个服务器
缺点:根据URL hash分配请求会不平均,请求频繁的URL会请求到同一个服务器上
upstream www.baidu.com{
server www.baidu.com:8080;
server www.baidu.com:9080;
hash $request_uri;
}
5.fair(第三方)
特点:按后端服务器的响应时间来分配请求,响应时间短的优先分配
upstream www.baidu.com{
server www.baidu.com:8080;
server www.baidu.com:9080;
fair;
}
**扩展
upstream backserver{
ip_hash;
server 127.0.0.1:9090 down; (down表示当前的server暂时不参与负载)
server 127.0.0.1:8080 weight=2;(weight默认为1,weight越大,负载的权重就越大)
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup; (其它所有的非backup机器down或者忙的时候,请求backup机器)
}