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

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

学无止境,精益求精

nginx 负载均衡可参阅:Nginx 通过upstream服务器组实现轮询式负载均衡及我所遇到的问题 【关闭selinux服务】

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秒依旧无法正常工作,则继续由备份服务器工作。

@天才卧龙的博客

posted @ 2022-04-29 11:52  天才卧龙  阅读(1428)  评论(0编辑  收藏  举报