0%

nginx使用upstream实现负载均衡

轮询(默认)

upstream servername { 
    server 10.0.0.1:8080; 
    server 10.0.0.2:8080; 
}

权重

weight 默认为1,weight越大,负载的权重就越大

upstream servername { 
    server 10.0.0.1:8080 weight=5; 
    server 10.0.0.2:8080 weight=10; 
}

IP哈希

请求按访问ip的hash结果分配

upstream servername { 
    ip_hash; 
    server 10.0.0.1:8080; 
    server 10.0.0.2:8080; 
}

响应时间

按后端服务器的响应时间来分配请求,响应时间短的优先分配

upstream servername { 
    fair;
    server 10.0.0.1:8080; 
    server 10.0.0.2:8080; 
}

其它哈希

如:根据请求路径哈希,hash_method是使用的hash算法

upstream servername { 
    fair;
    server 10.0.0.1:8080; 
    server 10.0.0.2:8080;
    hash $request_uri; 
    hash_method crc32; 
}

down/backup

upstream servername { 
    // down 表示单前的server暂时不参与负载.
    server 10.0.0.1:8080 down; 
    server 10.0.0.2:8080; 
    server 10.0.0.3:8080; 
    // 其它所有的非backup机器down或者忙的时候请求backup机器.
    server 10.0.0.4:8080 backup; 
}

参考链接