# 统一定义负载均衡器,也可在Server中定义
upstream lb_srv {
#lb_mode:负载均衡方式,默认是轮询。具体见后面对应章节
[lb_mode]
#server配置格式:server host[:port] [weight=number] [max_conns=number] [[max_fails=number] [fail_timeout=time]] [backup] [down] [resolve] [route=string] [slow_start=time] [drain]
# host: 域名或ip
# port:指定端口,默认为80
# weight:权重,默认为1。分配方式:当前代理服务器分配比例=当前服务器权重值/所有服务器权重值之和
# max_conns:代理服务器的同时活动连接的最大数量。默认值为零,表示没有限制。如果启用了空闲保活连接,则到代理服务器的活动连接和空闲连接的总数可能会超过max_conns值
# max_fails:设置在fail_timeout参数设置的持续时间内,不成功通信超过该参数设置的次数,认为服务器在fail_timeout参数设置的一段持续时间内是不可用的。默认情况下,不成功的尝试次数设置为1。零值将禁用尝试计数
# fail_timeout:见max_fails。默认为10秒。
# backup:服务器标记为备份服务器。当主服务器不可用时,它将被传递请求
# down:服务器标记为不可用
# resolve:监控服务器域名对应的IP地址的变化,并自动修改配置,无需重新启动nginx。服务器组必须位于共享内存中。为了使此参数起作用,必须在http块或相应的上游块中指定解析器指令(resolve)。
# route:设置服务器路由名称
# slow_start:当不正常的服务器变得正常时,或者当服务器在被认为不可用的一段时间后变得可用时,服务器将其权重从0恢复到设置值的时间。默认值为0,即禁用慢速启动。
# drain:将服务器置于“draining”模式。该模式下,只有绑定到服务器的请求才会被代理到服务器。
server 10.10.12.45:80 weight=1;
server app.example.com:80 weight=2;
server spare.example.com:80 backup;
}
server {
location / {
proxy_pass http://lb_srv;
}
}
如果请求在与服务器通信的过程中发生错误,则请求将传递给下一台服务器,依此类推,直到尝试所有正常运行的服务器为止。