image.png

max_conns

限制每台server的连接数,用于保护避免过载,可以起到限流作用。
测试参考配置如下:

  1. # worker进程设置1个,便于测试观察成功的连接数
  2. worker_processes 1;
  3. upstream tomcats {
  4. server 192.168.1.173:8080 max_conns=2;
  5. server 192.168.1.174:8080 max_conns=2;
  6. server 192.168.1.175:8080 max_conns=2;
  7. }

slow_start

缓慢的启动,慢慢加入到集群,会在配置的时间内将权重慢慢升级到配置的权重值

  • 商业版,需要付费
  • 必须要使用在集群里面
  • 必须要和权重一起使用
  • 该参数不能使用在hash和 random load balancing中
  • 如果在upstream中只有一台server,则该参数失效

参考配置如下:

  1. upstream tomcats {
  2. server 192.168.1.173:8080 weight=6 slow_start=60s;
  3. # server 192.168.1.190:8080;
  4. server 192.168.1.174:8080 weight=2;
  5. server 192.168.1.175:8080 weight=2;
  6. }

down

用于标记服务器节点不可用:

  1. upstream tomcats {
  2. server 192.168.1.173:8080 down;
  3. # server 192.168.1.190:8080;
  4. server 192.168.1.174:8080 weight=1;
  5. server 192.168.1.175:8080 weight=1;
  6. }

backup

表示当前节点服务器是备用机,只有在其他的服务器宕机以后,自己才会加入到集群中,被用户访问到:

  1. upstream tomcats {
  2. server 192.168.1.173:8080 backup;
  3. # server 192.168.1.190:8080;
  4. server 192.168.1.174:8080 weight=1;
  5. server 192.168.1.175:8080 weight=1;
  6. }

注意:backup参数不能使用在hash和random load balancing中。

max_fails

表示失败几次,则标记server已宕机,剔除上游服务。

fail_timeout

表示失败的重试时间。

  1. upstream tomcats {
  2. server 192.168.1.173:8080 max_fails=2 fail_timeout=15s;
  3. # server 192.168.1.190:8080;
  4. server 192.168.1.174:8080 weight=1;
  5. server 192.168.1.175:8080 weight=1;
  6. }

则表示在15秒内请求某一server失败达到2次后,则认为该server已经挂了或者宕机了,随后15秒内不会有新的请求到达刚刚挂掉的节点上,而是会请求到正常运作的server,15秒后会再有新请求尝试连接挂掉的server,如果还是失败,重复上一过程,直到恢复。