upstream指令参数
1、max_conns 2、slow_start 3、down
4、backup 5、max_fails 6、fail_timeout
参数说明:
1、max_conns
-
作用: 限制一台服务器的最大连接数;
-
默认值: 0,表示不去做任何限制;
-
目的: 保护服务器,限流,避免过载
-
注意:老版本的nginx无法使用此参数(1.11.5只能作用于商业版本)
备注: 使用了多个 worker_processes, 使用多个worker进程,连接总数肯定会大于max_conns
我们可以限制每台server的连接数,用于保护避免过载,可起到限流作用。
官网地址:
https://nginx.org/en/docs/stream/ngx_stream_upstream_module.html
测试参考配置如下:
# worker进程设置1个,便于测试观察成功的连接数
worker_processes 1;
upstream tomcats {
server 192.168.93.129:8080 max_conns=2;
server 192.168.93.130:8080 max_conns=2;
server 192.168.93.131:8080 max_conns=2;
}
2、slow_start 商业版本的nginx才能使用
-
作用: 让服务器缓慢的启动起来;使服务器慢慢加入集群
-
有些服务器在启动之后可能会有一些额外的配置;
-
这时不想让用户有大量的请求进入到这个服务器,因此会使用这个参数;
-
-
目的: 也便于运维人员启动一些监控软件,检测服务器请求由少到多的一个监控效果;
-
使用:
-
使用后,一个默认的权重(weight)覆盖,会从0慢慢升级到10;和权重结合使用;
-
该参数不能使用 hash和random的负载均衡策略;
-
需要使用在集群中,不适用单个服务器节点;
-
测试参考配置如下:
# worker进程设置1个,便于测试观察成功的连接数
worker_processes 1;
upstream tomcats {
server 192.168.93.129:8080 weight=2 slow_start=60s;
server 192.168.93.130:8080 weight=2;
server 192.168.93.131:8080 weight=2;
}
3、down
● 指令参数down
◆ 标识某台服务器为不可用状态
测试参考配置如下:
# worker进程设置1个,便于测试观察成功的连接数
worker_processes 1;
upstream tomcats {
server 192.168.93.129:8080 down;
server 192.168.93.130:8080 weight=1;
server 192.168.93.131:8080 weight=1;
}
这样,192.168.93.129这台服务器就访问不到了。
4、backup
● 指令参数backup
◆ 标识某台机器为备用机,备用机是不会被访问到的,只有其他的server挂掉,才会被访问到。
测试参考配置如下:
# worker进程设置1个,便于测试观察成功的连接数
worker_processes 1;
upstream tomcats {
server 192.168.93.129:8080 backup;
server 192.168.93.130:8080 weight=1;
server 192.168.93.131:8080 weight=1;
}
注意:
backup参数不能使用在hash和random load balancing中。
5、max_fails:表示失败几次,则标识server已宕机,踢出上游服务
6、fail_tiemout:表示失败得重试时间
测试参考配置如下:
# worker进程设置1个,便于测试观察成功的连接数
worker_processes 1;
upstream tomcats {
server 192.168.93.129:8080 max_fails=2 fail_timeout=15s;
server 192.168.93.130:8080 weight=1;
server 192.168.93.131:8080 weight=1;
}
则代表在15秒内请求某一server失败达到2次后,则认为该server已经挂了或者宕机了,随后再过15秒,这15秒内不会有新的请求到达刚刚挂掉的节点上,而是会请求到正常运作的server,15秒后会再有新请求尝试连接挂掉的server,如果还是失败,重复上一过程,直到恢复。