点赞
评论
收藏
分享
举报
NGINX配置主动健康检查
发表于2022-10-26 10:11

浏览 1.3k

文章标签

    NGINX 自带有健康检查模块:ngx_http_upstream_module ,单仅支持被动健康检查,即只有当有访问时,才发起对后端节点的探测,若后端请求失败,会导致业务抖动、影响用户体验。

    如何才能进行主动健康检查呢?这里需要用到更专业的模块: nginx_upstream_check_module,在淘宝开发的 tengine 上自带了该模块,但是对于使用 NGINX 的我们,需要手工将该模块编译进去:

一、安装


下载NGINX
cd /apps/svr/
wget http://nginx.org/download/nginx-1.20.2.tar.gz
tar zxvf nginx-1.20.2.tar.gz

下载依赖包:nginx_upstream_check_module
cd /apps/svr/
git clone https://github.com/yaoweibin/nginx_upstream_check_module.git


选择对应版本,打入补丁包
cd /apps/svr/nginx-1.20.2/
patch -p1 < /apps/svr/nginx_upstream_check_module/check_1.20.1+.patch


在编译过程中加入该模块,并安装
./configure --add-module=/apps/svr/nginx_upstream_check_module (省略其他参数)
make && make install


二、使用


创建健康检查中带上相关参数,例如:

upstream backend {
server 10.123.0.1:8080 weight=10;
server 10.123.0.2:8080 weight=10;
server 10.123.0.3:8080 weight=10;
server 10.123.0.4:8080 weight=10;

#http类型检查:interval调用间隔时间,成功rise次后存活,失败fall次后不存活
check interval=3000 rise=1 fall=3 timeout=2000 type=http;
#和上游服务器长连接数
check_keepalive_requests 100;
#检查调用接口
check_http_send "HEAD /healthcheck HTTP/1.0\r\nConnection: keep-alive\r\n\r\n";
#调用接口响应状态码为正常
check_http_expect_alive http_2xx http_3xx;
}


开启upstream状态页面

server {
listen 7000;
server_name _;
location /upstream_status {
#开启upstream状态页面
check_status;
}
}


访问7000端口,即可看到upstream健康检查状态,如图:


已修改于2023-03-09 09:26
本作品系原创
创作不易,留下一份鼓励
Yihan

暂无个人介绍

关注



写下您的评论
发表评论
全部评论(0)

按点赞数排序

按时间排序

关于作者
Yihan
这家伙很懒还未留下介绍~
3
文章
0
问答
1
粉丝
相关文章
安装nginx_upstream_check_module检查另起3台服务器,  两台tomcat,1台简易应用服务器(springboot项目)如图:0和1的上游服务器正常检测,2的服务器一直down于是:直接ip+端口+路径正常有值返回查看配置 checkinterval=3000rise=2fall=5timeout=1000type=http;   check_http_send"HEAD/HTTP/1.0\r\n\r\n";   check_http_expect_alivehttp_2xxhttp_3xx;  预计与http有关;```http:自定义发送一个请求,判断上游relaserver接收并处理后面没有思路排查了;请教社区大神后续步骤怎么走下去,小弟拜谢
点赞 0
浏览 606
原文作者:ElijahZupancicofF5和 JasonSchmidtofF5原文链接:现代应用参考架构之OpenTelemetry集成进展报告 -NGINX转载来源:NGINX官方网站  去年秋天我们在Sprint2.0上介绍NGINX现代应用参考架构 (MARA)项目时,就曾强调过这不是一个随随便便的架构,我们的初衷是打造一款“稳定可靠、经过测试且可以部署到在Kubernetes环境中运行的实时生产应用”的解决方案。对于这样一个项目来说,可观测性工具可以说是必不可少。MARA团队的所有成员都曾亲身体验过,缺乏状态和性能洞察会让应用开发和交付变得多么困难。我们很快就达成了共识,即MARA必须添加可以在生产环境中进行调试和跟踪的工具。MARA的另一项指导原则是首选开源解决方案。本文描述了我们对多功能开源可观测性工具的追求是如何使我们将目光转向 OpenTelemetry 的,然后详细介绍了其中的利弊权衡和设计决策,以及采用了哪些技术将OpenTelemetry与使
点赞 1
浏览 587
原文作者:NGINX中文社区官方团队 原文链接:完整会议议程:NGINXSprintChina2022年度线上大会 转载来源:NGINX官方网站 带上您的潜水服、调节器、潜水电脑表和水下摄像机,跟随我们在NGINXSprintChina2022年度线上会议期间,一起深潜到NGINX的斑斓世界吧! 12月1日,加入到一年一度的NGINXSprintChina2022线上大会中,了解最热的行业趋势以及NGINX的最新动态,并探索NGINX及其周边生态的使用案例、技术解析和运维实践。您还将有机会与NGINX官方团队、行业大咖以及社区中的开发者和技术爱好者共同探讨交流。 在此次深潜之旅期间,多位社区大咖和资深用户将与您分享他们的经验和见解,与您一同探索NGINX的无限可能。同时NGINX官方团队也将借此机会与社区进行深入交流,期待听到您的声音和反馈。 扫描上方海报二维码,立即免费注册NGINXSprintChina2022。您将通过邮件接收此次会议的相关信息,包括参会福利、会前提醒、参会链接、资
点赞 1
浏览 389