Nginx负载均衡的max_fails和fail_timeout的默认配置问题
2024-08-23 12:53:28
今天发现一个奇怪的现象,前端请求后端服务多次后会超时一次,经过多次验证确定是大概10s左右就会超时一次,检查后端服务,发现其中一个节点已经夯死。
但是我们的nginx负载均衡策略是轮询机制,按照配置来看应该是每隔一次请求轮询到失败的节点时超时一次才对。为什么是每隔10s超时一次呢?
upstream app_server {
server 192.168.15.98:9;
server 192.168.15.99:9;
}
原来,Nginx负载均衡的检查模块中,有两个参数:max_fails和fail_timeout。
默认:fail_timeout为10s,max_fails为1次。
原理:Nginx是基于连接探测的,如果发现后端异常,在单位周期为fail_timeout设置的时间中失败次数达到max_fails次,这个周期次数内,如果后端同一个节点不可用,那么就将把节点标记为不可用,并等待下一个周期(同样时长为fail_timeout)再一次去请求,判断是否连接是否成功
这样就能说明我们发现的现象了。即在10s以内后端失败了1次【即一次请求超时】,那么这个后端就被标识为不可用了,所以在接下来的10s期间,nginx都会把请求分配给正常的后端【即多次的请求正常】。
最新文章
- PHP中面向对象的关键字
- linux文件目录权限详解(20170101)
- CentOS下Apache开启Rewrite功能
- Debug模式下编译溢出问题
- 如何才能恢复Excel文档的打开密码
- XHTML的若干注意点
- Delphi EVariantTypeCastError错误的解决方法
- 移植FastBlur模糊算法至SDL
- [Angular 2] Building a Toggle Button Component
- 有关UITableViewCell的侧滑删除以及使用相关大神框架MGSwipeTableCell遇到的小问题
- Swift - 制作一个录音机(声音的录制与播放)
- 配置jboss4.2.3GA启用SSL
- Javascript正则表达式完全学习手册
- Gradle 1.12用户指南翻译——第四十七章. Build Init 插件
- python实现类似于Matlab中的magic函数
- Python基础-python数据类型之元祖、字典(四)
- spring笔记-@Primary注解
- dedecms迁站
- [svc]java初步
- BZOJ4856 病毒感染 [Jsoi2016] dp
热门文章
- 用doxygen+graphviz生成函数调用流程图
- 【LuoguP3270】[JLOI2016] 成绩比较
- 模拟输入(ADC-A0)
- 阿里重磅开源全球首个批流一体机器学习平台Alink,Blink功能已全部贡献至Flink
- mysql DISTINCT语句 语法
- Pandas中的qcut和cut
- [BZOJ4817][SDOI2017]树点涂色:Link-Cut Tree+线段树
- httpscan 爬虫式的网段Web主机发现小工具
- [CSP-S模拟测试]:排列组合(数学 or 找规律)
- [CSP-S模拟测试]:大佬(kat)(数学期望)