Nginx除了作为反向代理,还有一个很重要的特性,负载均衡。
upstream 就是用来实现负载均衡的一个节点。
upstream dispatcher {
server ip:port;
server ip2:port2;
}
再通过配置location中的proxy_pass 为 http://dispatcher$request\_uri; 即可实现轮询负载。
当然除了轮询,还有其他负载策略:
weight(权重)
upstream dispatcher {
server ip:port weight=1 max_fails=3 fail_timeout=15;
server ip2:port2 weight=2;
server ip3:port3 backup;
server ip4:port4 down;
}
上述例子中出现的 max_fails 表示请求失败重新请求的次数;fail_timeout表示请求失败暂停时间;
backup表示服务器是个备份机,只有其他机器忙的时候,才会被请求;
down表示服务器不参加负载;
ip_hash(ip 哈希算法)
upstream dispatcher {
ip_hash;
server ip:port;
server ip2:port2;
}