nginx对后端节点的健康检查

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介:

最近梳理了下手头的业务,发现nginx层配有几种健康检查方式,在这里做个总结,记录下nginx做负载均衡时对后端节点的健康检查方式:


1、ngx_http_proxy_module 模块中的下面三个指令(nginx自带模块)

      proxy_connect_timeout 60s

        设置与后端服务器建立连接的超时时间。应该注意这个超时一般不可能大于75秒

      proxy_read_timeout 60s

        定义从后端服务器读取响应的超时。此超时是指相邻两次读操作之间的最长时间间隔,而不是整个响应传输完成的最长时间。如果后端服务器在超时时间段内没有传输任何数据,连接将被关闭。

      proxy_next_upstream error  timeout; 

        指定在何种情况下一个失败的请求应该被发送到下一台后端服务器


2、ngx_http_upstream_module模块中的server指令 (nginx自带模块)

    采用这个方式需要注意的一点是,如果后端有不健康节点,负载均衡器依然会先把该请求转发给该不健康节点,然后再转发给别的节点,这样就会浪费一次转发。

范例:

        upstream name {

                server 10.0.0.1:80 max_fails=1 fail_timeout=10s;

                server 10.0.0.2:80 max_fails=1 fail_timeout=10s;

        }

    PS:下面是每个指令的介绍:

        max_fails=number  # 设定Nginx与服务器通信的尝试失败的次数。在fail_timeout参数定义的时间段内,如果失败的次数达到此值,Nginx就认为服务器不可用。在下一个fail_timeout时间段,服务器不会再被尝试。

        fail_timeout=time   # 设定服务器被认为不可用的时间段以及统计失败尝试次数的时间段。在这段时间中,服务器失败次数达到指定的尝试次数,服务器就被认为不可用。默认情况下,该超时时间是10秒。 

         weight=number    #权重值

         backup    #备份机的标志

         down      #标明改节点不可用

         ip_hash;    #会话保持功能,将客户端的多次请求定向到组内的同一台服务器,保障C/S之间建立稳定的会话

         keepalive connections; #控制网络连接的保持功能


3、nginx_upstream_check_module模块(非nginx自带)

    这个是淘宝技术团队开发的nginx_upstream_check_module,是一个专业提供负载均衡器内节点的健康检查的。如果后端节点不可用,则所以的请求就不会转发到该节点上。使用这种检查方式,通过补丁的方式来添加该模块到自己的 nginx 中。(添加方式此处忽略)

范例:

        upstream name {

               server 10.0.0.1:80;

               server 10.0.0.2:80;

               check interval=300 rise=2 fall=5 timeout=1000 type=tcp port81;

        }

上面 配置的意思是,对name这个负载均衡条目中的所有节点,每个300毫秒检测一次,请求2次正常则标记 realserver状态为up,如果检测 5 次都失败,则标记 realserver的状态为down,超时时间为1秒。

健康检查包的类型是tcp类型,端口是81。



     本文转自西鼠 51CTO博客,原文链接:http://blog.51cto.com/10630401/1961172,如需转载请自行联系原作者




相关实践学习
小试牛刀,一键部署电商商城
SAE 仅需一键,极速部署一个微服务电商商城,体验 Serverless 带给您的全托管体验,一起来部署吧!
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
4月前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
279 61
|
7月前
|
负载均衡 应用服务中间件 网络安全
Django后端架构开发:Nginx服务优化实践
Django后端架构开发:Nginx服务优化实践
134 2
|
7月前
|
负载均衡 Java 应用服务中间件
谁说后端不需要懂的-Nginx知识点
先赞后看,南哥助你Java进阶一大半他叫,一个俄罗斯程序员。就是他,着手开发了大名鼎鼎处理高并发、高负载网络请求的Nginx,同时他在2004年把Nginx作为开源软件发布。大家好,我是南哥。一个Java学习与进阶的领路人,相信对你通关面试、拿下Offer进入心心念念的公司有所帮助。
谁说后端不需要懂的-Nginx知识点
|
7月前
|
负载均衡 算法 应用服务中间件
揭秘!nginx的神秘力量——如何单枪匹马驾驭Linux中的流量洪流与后端军团?
【8月更文挑战第20天】在Linux环境下,Nginx是一款高效HTTP与反向代理服务器,还具备负载均衡功能。本文采用问答形式解析Nginx的反向代理机制:接收并转发客户端请求至后端服务器,增强安全性和性能。示例配置展示了如何设置上游服务器与代理传递规则。同时介绍了Nginx负载均衡原理及配置,利用upstream模块与不同调度算法(如轮询、最少连接、IP哈希)分发请求,提升系统可靠性和处理能力。
77 2
|
8月前
|
缓存 负载均衡 应用服务中间件
Nginx如何反向代理后端服务?
【7月更文挑战第7天】
159 1
Nginx如何反向代理后端服务?
|
8月前
|
前端开发 应用服务中间件 nginx
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
|
9月前
|
NoSQL
|
9月前
|
存储 负载均衡 NoSQL
【后端面经】【NoSQL】ElasticSearch - 1 - 1 节点角色 写入数据
【6月更文挑战第12天】中间件高可用与高性能通过冗余、负载均衡和优化实现。Elasticsearch节点有候选主节点、协调节点和数据节点等角色,可兼任或独立。数据写入涉及Buffer、Page Cache和磁盘,通过段合并优化资源使用。查询通过Commit Point识别新段,确保近实时搜索。
57 0
|
10月前
|
SQL JSON 应用服务中间件
web后端-win-phpMySql-nginx-web发布
web后端-win-phpMySql-nginx-web发布
|
10月前
|
应用服务中间件 Linux nginx
web后端-linux-nginx-1.18操作命令和部署
web后端-linux-nginx-1.18操作命令和部署

热门文章

最新文章