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

浏览 4.9k

文章标签

    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

暂无个人介绍

关注



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

按点赞数排序

按时间排序

你好 能麻烦 帮我看一下我的提问吗,有红包答谢

赞同

0

回复举报

发表于2023-10-28 14:29



回复5150943tydg
回复
关于作者
Yihan
这家伙很懒还未留下介绍~
3
文章
0
问答
2
粉丝
相关文章