nginx upstream
nginx的upstream官方地址为:http://nginx.org/cn/docs/http/ngx_http_upstream_module.html
轮询分为多种,分为普通轮询(一个接一个的进行访问,即按加权轮转的方式将请求分发到各服务器),ip_hash轮询,url_hash轮询,以及fair轮询等方法。
nginx upstream轮询配置。
upstream在http中,与server同等级别
upstream 域名 {
server IP地址;
}
server {
location / {
proxy_pass http://域名;
}
}
fail轮训: 按照响应时间进行分配请求,响应时间短,即rt小的后端服务器优先分配请求;
upstream backup {
fail;
server 172.16.76.150;
server 172.16.76.151;
}
与ip_hash类似,但是按照访问url的hash结果来分配请求,使得每个url定向到同一个后端服务器,主要应用于后端服务器为缓存时的场景下。
upstream backup {
server 172.16.76.150;
server 172.16.76.151;
hash $request_uri;
hash_method crs32;
} 其中,hash_method为使用的hash算法,需要注意的是:此时,server语句中不能加weight等参数
在upstream的server IP地址/域名/socket后面跟的参数:
weight = number
设定服务器的权重 ,默认是1
max_fails= number
设定nginx与服务器的通信次数,在fail_timeout参数定义的时间段内,如果失败的次数达到次指,nginx就认为这台服务器不能进行使用。在下一个fail_timeout时间段内,nginx服务器不会访问这台服务器。
fail_timeout = time
统计失败尝试次数的时间段。在这段时间内,服务器失败次数达到指定的尝试次数,服务器就被认为不可用
服务器认为不可用的时间段
backup
服务器备机地址
down
标志服务器永久不可用,可以跟ip_hash一起使用。