Nginx 主动检查 被动检查

被动检查

proxy_next_upstream
在这里插入图片描述

http {upstrean httpget {//max_fail=5,失败5词,直接下线 down,//fail_timeout=10s, 10s之后  重新上线 up//fail_timeout=10s,  max_fail=5,5次失败在10s内,下线,server IP:80 max_fails=5 fail_timeout=10s;server IP:90;}server {listen 80;server_name:xxxx;localion / {proxy_next_upstream error timeout;proxy_next_upstream_timeout 15s;proxy_next_upstream_tries 5;proxy_pass http://httpget;root html;}}
}

nginx被动健康检查的缺陷

(1)Nginx只有当有访问时后,才发起对后端节点探测。

(2)如果本次请求中,节点正好出现故障,Nginx依然将请求转交给故障的节点,然后再转交给健康的节点处理。所以不会影响到这次请求的正常进行。但是会影响效率,因为多了一次转发。

(3)自带模块无法做到预警。

主动检查

下载地址 https://github.com/yaoweibin/nginx_upstream_check_module
在这里插入图片描述
在这里插入图片描述
raw之后,复制里面的内容,
在nginx中 vim path

在nginx的解压文件的目录下,执行path
path -p1 > /xxx 上面的path路径
在这里插入图片描述
在这里插入图片描述
./configure --prefixe=/usr/local/nginx --add-module=/xx nginx_upstream_check_module 解压文件

make
make install

在这里插入图片描述
指定配置文件启动(如果不用默认的配置文件)
nginx -c /path/to/nginx.conf
nginx主动健康检查

(1)区别于nginx自带的非主动式的心跳检测,淘宝开发的tengine自带了一个提供主动式后端服务器心跳检测模块,若健康检查包类型为http,在开启健康检查功能后,nginx会根据设置的间隔向指定的后端服务器端口发送健康检查包,并根据期望的HTTP回复状态码来判断服务是否健康。

(2)后端真实节点不可用,则请求不会转发到故障节点

(3)故障节点恢复后,请求正常转发

  http {upstream cluster {# simple round-robinserver 192.168.0.1:80;server 192.168.0.2:80;check interval=5000 rise=1 fall=3 timeout=4000;#check interval=3000 rise=2 fall=5 timeout=1000 type=ssl_hello;#check interval=3000 rise=2 fall=5 timeout=1000 type=http;#check_http_send "HEAD / HTTP/1.0\r\n\r\n";#check_http_expect_alive http_2xx http_3xx;}server {listen 80;location / {proxy_pass http://cluster;}location /status {check_status;access_log   off;#allow SOME.IP.ADD.RESS;#deny all;}}}

check功能

interval: 向后端发送的健康检查包的间隔,单位为毫秒
rsie: 如果连续成功次数达到rise_count,服务器就被认为是up
fall: 如果连续失败次数达到fall_count,服务器就被认为是down
timeout: 后端健康请求的超时时间,单位为毫秒
type: 健康检查包的类型,支持tcp、ssl_hello、http、mysql、ajp

用法: check interval=milliseconds [fall=count] [rise=count] [timeout=milliseconds] [default_down=true|false] [type=tcp|http|ssl_hello|mysql|ajp] [port=check_port]
默认值: 如果没有配置参数,默认值是:interval=30000 fall=5 rise=2 timeout=1000 default_down=true type=tcp
位置:upstream块
#port: 指定后端服务器的检查端口。你可以指定不同于真实服务的后端服务器的端口,比如后端提供的是443端口的应用,你可以去检查80端口的状态来判断后端健康状况。默认是0,表示跟后端server提供真实服务的端口一样。

check_http_send 功能

用法:check_http_send “HEAD /ierp/ HTTP/1.0\r\n\r\n”
默认值: “GET / HTTP/1.0\r\n\r\n”
位置:upstream块
说明:http://IP:8080/做健康检测,但有问题的是,我们的服务不一定都是/结尾,有时需要加后缀才能访问到资源。比如,如果不在后端tomcat配置上下文路径那么(test.war)正常访问路径就是http://IP:8080/test,对于非根访问上述配置健康检查就一定都是error状态。
check_http_send字段 HEAD后面的 / 就是路径的配置,与其对应的正确能被识别到的地址为"HEAD /ierp/checkk8shealth HTTP/1.0\r\n\r\n",/后面可以为项目中的某个url只要能请求到就可以

check_http_expect_alive功能:

用法: check_http_expect_alive [ http_2xx | http_3xx | http_4xx | http_5xx ]
默认值: http_2xx | http_3xx
位置:upstream块
说明:这些状态码表示上游服务器的http响应是正常的,后端是活的。

check_keepalive_requests功能:

用法: check_keepalive_requests num
默认值: check_keepalive_requests 1
位置:upstream块
说明:该指令指定在一个连接上发送的请求数,默认值1表示nginx在收到请求后肯定会关闭连接。

check_fastcgi_param功能:

用法:check_fastcgi_params parameter value ,如,默认指令是这样的:
check_fastcgi_param “REQUEST_METHOD” “GET”;
check_fastcgi_param “REQUEST_URI” “/”;
check_fastcgi_param “SCRIPT_FILENAME” “index.php”;
位置:upstream块
说明:如果设置检查类型为fastcgi,则检查函数将发送这个fastcgi报头来检查上游服务器。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/438418.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

除毛可以用宠物空气净化器吗?猫用空气净化器质量高的品牌推荐

如今,越来越多的家庭选择养宠物,因为它们给家里带来了温馨和快乐。然而,宠物也可能带来异味和空气中的浮毛,这可能会给我们的健康带来问题,成为一个困扰。 为了解决家里的异味问题,尤其是宠物的排泄物味道…

DMA 和 零拷贝技术 到 网络大文件传输优化

文章目录 DMA 控制器的发展无 DMA 控制器 IO 过程DMA 控制器 传统文件传输性能有多糟糕?如何优化文件传输性能零拷贝技术mmap writesendfileSG-DMA(The Scatter-Gather Direct Memory Access) 零拷贝技术的应用 大文件传输应该用什么方式Pag…

应急响应-流量分析

在应急响应中,有时需要用到流量分析工具,。当需要看到内部流量的具体情况时,就需要我们对网络通信进行抓包,并对数据包进行过滤分析,最常用的工具是Wireshark。 Wireshark是一个网络封包分析软件。网络封包分析软件的…

qtcreator使用qwt库

先配置好.pro文件,再去ui界面拖拽控件 ui界面会更改配置,故顺序错一个,就凉了,重来吧 准备:库,库头文件 库文件:路径如下 头文件:路径如下 鼠标->右键 (有些不用勾…

构建知识图谱:从技术到实战的完整指南

目录 一、概述二、知识图谱的基础理论定义与分类核心组成历史与发展 三、知识获取与预处理数据源选择数据清洗实体识别 四、知识表示方法知识表示模型RDFOWL属性图模型 本体构建关系提取与表示 五、知识图谱构建技术图数据库选择Neo4jArangoDB 构建流程数据预处理实体关系识别图…

go语言基础之泛型

1.泛型 泛型是一种独立于所使用的特定类型的编写代码的方法。使用泛型可以编写出适用于一组类型中的任何一种的函数和类型。 1.1 为什么需要泛型 func reverse(s []int) []int {l : len(s)r : make([]int, l)for i, e : range s {r[l-i-1] e}return r }fmt.Println(reverse…

基于YOLOv7算法和FLIR数据集的高精度实时红外行人目标检测系统(PyTorch+Pyside6+YOLOv7)

摘要:基于YOLOv7算法和FLIR数据集的高精度实时红外行人目标检测系统可用于日常生活中检测与定位自行车、汽车、狗和行人目标,此系统可完成对输入图片、视频、文件夹以及摄像头方式的目标检测与识别,同时本系统还支持检测结果可视化与导出。本…

智慧文旅:未来旅游业的数字化转型

随着科技的快速发展,数字化转型已经成为各行各业的必然趋势。旅游业作为全球经济的重要组成部分,也正经历着前所未有的变革。智慧文旅作为数字化转型的重要领域,正逐渐改变着旅游业的传统模式,为游客带来更加便捷、个性化的旅游体…

基于vue实现待办清单案例

一、需求 新增内容; 删除内容; 统计操作; 清空数据。 示例图: 二、代码演示 1、基础准备 index.css代码 html, body {margin: 0;padding: 0; } body {background: #fff ; } button {margin: 0;padding: 0;border: 0;backgr…

OpenHarmony—ArkTS不支持生成器函数

规则&#xff1a;arkts-no-generators 级别&#xff1a;错误 目前ArkTS不支持生成器函数&#xff0c;使用async或await机制进行并行任务处理。 TypeScript function* counter(start: number, end: number) {for (let i start; i < end; i) {yield i;} }for (let num of…

在线制作gif动图怎么做?一个方法轻松制作gif动画

有时候一张普通的图片无法表达出我们的意思&#xff0c;但是视频又比较长看起来太过复杂。这时候&#xff0c;大家就可以使用gif动图了&#xff0c;不需要下载软件使用gif生成器&#xff08;https://www.gif.cn/&#xff09;-GIF中文网&#xff0c;轻松一键就能快速完成gif在线…