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秒依旧无法正常工作,则继续由备份服务器工作。
@天才卧龙的博客
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具