Nginx除了做为反向代理,还有一个很重要的特性,负载均衡。算法
upstream 就是用来实现负载均衡的一个节点。服务器
upstream dispatcher {
server ip:port;
server ip2:port2;
}负载均衡
再经过配置location中的proxy_pass 为 http://dispatcher$request_uri; 便可实现轮询负载。spa
固然除了轮询,还有其余负载策略:代理
weight(权重)server
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;
}ip
上述例子中出现的 max_fails 表示请求失败从新请求的次数;fail_timeout表示请求失败暂停时间;
backup表示服务器是个备份机,只有其余机器忙的时候,才会被请求;
down表示服务器不参加负载;hash
ip_hash(ip 哈希算法)io
upstream dispatcher {
ip_hash;
server ip:port;
server ip2:port2;
}反向代理