Nginx 负载均衡状态介绍【down/backup/max_conns/max_fails/fail_timeout】

2022/4/30 7:14:39

本文主要是介绍Nginx 负载均衡状态介绍【down/backup/max_conns/max_fails/fail_timeout】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

十年河东,十年河西,莫欺少年穷

学无止境,精益求精

1、down 关键字 

用来标识某台服务器不参与负载均衡,该状态的使用场景是某台服务器需要停机维护时设置为down,或者发布新功能时

   upstream backend {
   server 192.168.136.136;
   server 192.168.136.136:81 down;
   server 192.168.136.136:82;
   server 192.168.136.136:83;
   }    
   
    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass  http://backend;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

说明:192.168.136.136:81 服务器暂不可用

2、backup 关键字

用来标识将该服务器视作备份服务器,当主服务器不能工作时,备份服务器会开启工作

 upstream backend {
   server 192.168.136.136;
   server 192.168.136.136:81 down;
   server 192.168.136.136:82 backup;
   server 192.168.136.136:83;
   }    
   
    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass  http://backend;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

说明:192.168.136.136:82 服务器为备份服务器,192.168.136.136 和 192.168.136.136:83 为主服务器,当这两台服务器均故障不可用时,备份服务器会开启工作,当主服务器任一台恢复工作时,备份服务器处于待命状态

3、max_conns 关键字

max_conns = number; 用来设置最大活动链接数,当设置为 0 时,标识不限制最大活动链接。可以根据具体服务器性能来设定max_conns 的值,它所起到的作用是:防止服务器活动链接过多而导致服务器超出最大承载引起宕机的问题。

 upstream backend {
   server 192.168.136.136 max_conns = 1024;
   server 192.168.136.136:81 down;
   server 192.168.136.136:82 backup;
   server 192.168.136.136:83 max_conns = 1024;
   }    
   
    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass  http://backend;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

根据服务器具体性能设定具体值。

4、max_fails  和  fail_timeout 关键字

max_fails 和 fail_timeout 是配合使用的,max_fails = number 是指:设置允许请求代理服务器最大的失败次数。 fail_timeout 是指:代理服务器在经过 max_fails =number 次失败后,服务器暂停的时间,单位为秒,默认10秒

 upstream backend {
   server 192.168.136.136 max_conns = 1024 max_fails =3 fail_timeout =10;
   server 192.168.136.136:81 down;
   server 192.168.136.136:82 backup;
   server 192.168.136.136:83 max_conns = 1024 max_fails=3 fail_timeout =10;
   }    
   
    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass  http://backend;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

如果2个主服务器 192.168.136.136 和 192.168.136.136:83 被请求时,均达到了最大失败次数3次,则两个主服务器均会暂停10秒【之前的三次请求由代理服务器完成正常响应】,也就是说在这10秒内,无法访问主服务器,如果10秒后主服务器恢复正常,则主服务器继续工作,如果10秒依旧无法正常工作,则继续由备份服务器工作。

@天才卧龙的博客



这篇关于Nginx 负载均衡状态介绍【down/backup/max_conns/max_fails/fail_timeout】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程