<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Health_check :: NJET文档</title>
    <link>https://docs.njet.org.cn/docs/v4.0.1/reference/upstream/health_check/index.html</link>
    <description>健康检查 主动健康检查与被动健康检查：主动健康检查由NJet主动发起请求测试上游服务是否正常，如不正常则及时剔除对应服务；被动健康检查由NJet检测上游服务的异常返回发现服务异常，不能主动感知上游服务状态。</description>
    <generator>Hugo</generator>
    <language>zh</language>
    <lastBuildDate>Mon, 13 Oct 2025 16:43:59 +0800</lastBuildDate>
    <atom:link href="https://docs.njet.org.cn/docs/v4.0.1/reference/upstream/health_check/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>sql 数据库主动健康检查</title>
      <link>https://docs.njet.org.cn/docs/v4.0.1/reference/upstream/health_check/mysql_health_check/index.html</link>
      <pubDate>Mon, 13 Oct 2025 16:43:59 +0800</pubDate>
      <guid>https://docs.njet.org.cn/docs/v4.0.1/reference/upstream/health_check/mysql_health_check/index.html</guid>
      <description>1. 功能说明 sql 数据库主动健康检查功能基本等同于http主动健康检查和stream主动健康检查，现在支持对mysql进行健康检查。&#xA;2. 依赖模块 mysql主动健康检查，依赖模块：&#xA;load_module modules/njt_http_sendmsg_module.so; load_module modules/njt_helper_health_check_module.so; 3. 配置说明 3.1 API说明 查询全部tcp类型的健康检查列表：&#xA;GET http://ip+port/api/v1/hc/smysql/ 查询具体upstream名为backend的tcp类型的健康检查配置：&#xA;GET http://ip+port/api/v1/hc/smysql/backend 向具体upstream名为backend添加tcp类型健康检查：&#xA;POST http://ip+port/api/v1/hc/smysql/backend 删除具体upstream名为backend的tcp类型健康检查：&#xA;DELETE http://ip+port/api/v1/hc/smysql/backend 格式说明健康检查配置项参数说明&#xA;{ #下面这些字段是通用字段，所有类型都使用，interval、jitter、timeout、passes、fails为必填字段 &#34;interval&#34;: &#34;5s&#34;, &#34;jitter&#34;: &#34;1s&#34;, &#34;timeout&#34;: &#34;5s&#34;, &#34;passes&#34;: 1, &#34;fails&#34;: 1, &#34;visit_interval&#34;: &#34;5s&#34;, &#34;port&#34;: 80, #stream块配置由stcp和sudp类型使用 &#34;stream&#34;: { &#34;send&#34;: &#34;string&#34;, &#34;expect&#34;: &#34;string&#34; }, #http块配置主要有http使用 &#34;http&#34;: { &#34;uri&#34;: &#34;/&#34;, &#34;header&#34;: [ &#34;string&#34; ], &#34;body&#34;: &#34;string&#34;, &#34;status&#34;: &#34;string&#34; }, #ssl块配置由stcp以及http使用，在需要配置ssl时配置 &#34;ssl&#34;: { &#34;enable&#34;: false, &#34;ntls&#34;: false, &#34;session_reuse&#34;: false, &#34;protocols&#34;: &#34;TLSv1 TLSv1.1 TLSv1.2&#34;, &#34;ciphers&#34;: &#34;DEFAULT&#34;, &#34;name&#34;: &#34;upstream name&#34;, &#34;serverName&#34;: false, &#34;verify&#34;: false, &#34;verifyDepth&#34;: 1, &#34;trustedCertificate&#34;: &#34;string&#34;, &#34;crl&#34;: &#34;string&#34;, &#34;certificate&#34;: &#34;string&#34;, &#34;certificateKey&#34;: &#34;string&#34;, &#34;encCertificate&#34;: &#34;string&#34;, &#34;encCertificateKey&#34;: &#34;string&#34; }, #sql块配置主要由smysql使用 &#34;sql&#34;: { &#34;select&#34;: &#34;select 1&#34;, &#34;useSsl&#34;: true, &#34;user&#34;: &#34;string&#34;, &#34;password&#34;: &#34;string&#34;, &#34;db&#34;: &#34;string&#34; } } 配置项 必填 配置说明 interval 是 主动健康检查频率 (必填) visit_interval 否 健康检查时，如果指定的时间间隔内该server被客户端访问过，则该server跳过此次健康检查,interval &gt; visit_interval jitter 是 设置健康检查项定时器最大偏差。防止所有检查项同时触发。 (必填) timeout 是 超时时间 (必填) passes 是 server_body server 块内的指令集，每条指令用分号分隔。server_body内容可以为空。 fails 是 连续不通过fails次检测，更新peer为unhealthy状态 (必填) port 否 指定健康检查的端口，如果不指定，使用upstream中设置的端口 sql块配置字段详细介绍</description>
    </item>
    <item>
      <title>Stream主动健康检查</title>
      <link>https://docs.njet.org.cn/docs/v4.0.1/reference/upstream/health_check/stream_health_check/index.html</link>
      <pubDate>Mon, 18 Aug 2025 14:38:37 +0800</pubDate>
      <guid>https://docs.njet.org.cn/docs/v4.0.1/reference/upstream/health_check/stream_health_check/index.html</guid>
      <description>1. 功能说明 stream主动健康检查功能等同于http主动健康检查，根据上游server类型不同主要分为TCP类型，UDP类型等。&#xA;2. 依赖模块 stream主动健康检查等同http主动健康检查，依赖模块：&#xA;load_module modules/njt_http_sendmsg_module.so; load_module modules/njt_helper_health_check_module.so; 3. 配置说明 3.1 API说明 upstream为TCP server： 查询全部tcp类型的健康检查列表：&#xA;GET http://ip+port/api/v1/hc/stcp/ 查询具体upstream名为backend的tcp类型的健康检查配置：&#xA;GET http://ip+port/api/v1/hc/stcp/backend 向具体upstream名为backend添加tcp类型健康检查：&#xA;POST http://ip+port/api/v1/hc/stcp/backend 删除具体upstream名为backend的tcp类型健康检查：&#xA;DELETE http://ip+port/api/v1/hc/stcp/backend upstream为UDP server： 查询全部udp类型的健康检查列表：&#xA;GET http://ip+port/api/v1/hc/sudp/ 查询具体upstream名为backend的udp类型的健康检查配置：&#xA;GET http://ip+port/api/v1/hc/sudp/backend 向具体upstream名为backend添加udp类型健康检查：&#xA;POST http://ip+port/api/v1/hc/sudp/backend 删除具体upstream名为backend的udp类型健康检查：&#xA;DELETE http://ip+port/api/v1/hc/sudp/backend 格式说明健康检查配置项参数说明&#xA;{ #下面这些字段是通用字段，所有类型都使用，interval、jitter、timeout、passes、fails为必填字段 &#34;interval&#34;: &#34;5s&#34;, &#34;jitter&#34;: &#34;1s&#34;, &#34;timeout&#34;: &#34;5s&#34;, &#34;passes&#34;: 1, &#34;fails&#34;: 1, &#34;visit_interval&#34;: &#34;5s&#34;, &#34;port&#34;: 80, #stream块配置由stcp和sudp类型使用 &#34;stream&#34;: { &#34;send&#34;: &#34;string&#34;, &#34;expect&#34;: &#34;string&#34; }, #http块配置主要有http使用 &#34;http&#34;: { &#34;uri&#34;: &#34;/&#34;, &#34;header&#34;: [ &#34;string&#34; ], &#34;body&#34;: &#34;string&#34;, &#34;status&#34;: &#34;string&#34; }, #ssl块配置由stcp以及http使用，在需要配置ssl时配置 &#34;ssl&#34;: { &#34;enable&#34;: false, &#34;ntls&#34;: false, &#34;session_reuse&#34;: false, &#34;protocols&#34;: &#34;TLSv1 TLSv1.1 TLSv1.2&#34;, &#34;ciphers&#34;: &#34;DEFAULT&#34;, &#34;name&#34;: &#34;upstream name&#34;, &#34;serverName&#34;: false, &#34;verify&#34;: false, &#34;verifyDepth&#34;: 1, &#34;trustedCertificate&#34;: &#34;string&#34;, &#34;crl&#34;: &#34;string&#34;, &#34;certificate&#34;: &#34;string&#34;, &#34;certificateKey&#34;: &#34;string&#34;, &#34;encCertificate&#34;: &#34;string&#34;, &#34;encCertificateKey&#34;: &#34;string&#34; }, #sql块配置主要由smysql使用 &#34;sql&#34;: { &#34;select&#34;: &#34;select 1&#34;, &#34;useSsl&#34;: true, &#34;user&#34;: &#34;string&#34;, &#34;password&#34;: &#34;string&#34;, &#34;db&#34;: &#34;string&#34; } } 配置项 必填 配置说明 interval 是 主动健康检查频率 (必填) visit_interval 否 健康检查时，如果指定的时间间隔内该server被客户端访问过，则该server跳过此次健康检查,interval &gt; visit_interval jitter 是 设置健康检查项定时器最大偏差。防止所有检查项同时触发。 (必填) timeout 是 超时时间 (必填) passes 是 server_body server 块内的指令集，每条指令用分号分隔。server_body内容可以为空。 fails 是 连续不通过fails次检测，更新peer为unhealthy状态 (必填) port 否 指定健康检查的端口，如果不指定，使用upstream中设置的端口 3.2 健康检查TCP配置方式 请求BODY { &#34;interval&#34;: &#34;3s&#34;, &#34;jitter&#34;: &#34;1s&#34;, &#34;timeout&#34;: &#34;10s&#34;, &#34;passes&#34;: 2, &#34;fails&#34;: 1, &#34;stream&#34;: { /* 开启四层健康检查 */ &#34;send&#34;: &#34;zhao\\x6B\\x61\\x6E\\x67&#34;, /* 期望发送的文本 */ &#34;expect&#34;: &#34;\\x74\\x68\\x61\\x6E\\x6B\\x20you&#34; /* 期望收到的文本 */ } } 请求命令 curl -s http://127.0.0.1:8081/api/v1/hc/stcp/demo -XPOST -d &#39;{&#34;interval&#34;: &#34;3s&#34;,&#34;jitter&#34;: &#34;1s&#34;,&#34;timeout&#34;: &#34;10s&#34;,&#34;passes&#34;: 2, &#34;fails&#34;: 1,&#34;stream&#34;: {&#34;send&#34;: &#34;zhao\\x6B\\x61\\x6E\\x67&#34;,&#34;expect&#34;: &#34;\\x74\\x68\\x61\\x6E\\x6B\\x20you&#34;}}&#39; 返回 { &#34;code&#34;: 0, &#34;msg&#34;: &#34;success&#34; } 参数说明： stcp为四层健康检查配置的关键字,表示使用TCP协议 demo为对应下发的upstream的name stream 为stream类型的上游健康检查指定参数。 stream.send为期望发送的文本，对于不可见字符，可使用16进制方式表示，格式为\\x[a-f0-9]{1,2},配置时可与普通文本串混合使用。 stream.expect 为期望收到的文件内容串，对于不可见字符，可使用16进制方式表示，\\x[a-f0-9]{1,2},配置时可与普通文本串混合使用 3.3 健康检查TCP + TLS配置方式 请求BODY { &#34;interval&#34;: &#34;3s&#34;, &#34;jitter&#34;: &#34;1s&#34;, &#34;timeout&#34;: &#34;10s&#34;, &#34;passes&#34;: 2, &#34;fails&#34;: 1, &#34;stream&#34;: { /* 开启四层健康检查 */ &#34;send&#34;: &#34;zhao\\x6B\\x61\\x6E\\x67&#34;, /* 期望发送的文本 */ &#34;expect&#34;: &#34;\\x74\\x68\\x61\\x6E\\x6B\\x20you&#34; /* 期望收到的文本 */ }, &#34;ssl&#34;: { &#34;enable&#34;: true, /* 是否启用TLS */ &#34;ntls&#34;: true, /* 是否是国密算法 */ &#34;ciphers&#34;:&#34;ECC-SM2-SM4-CBC-SM3:ECDHE-SM2-WITH-SM4-SM3:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:ECDHE-RSA-AES128-SHA256:!aNULL:!eNULL:!RC4:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS&#34; /* 支持算法 */ } } 请求命令 curl -s http://127.0.0.1:8081/api/v1/hc/stcp/demo -XPOST -d &#39;{&#34;interval&#34;: &#34;3s&#34;,&#34;jitter&#34;: &#34;1s&#34;,&#34;timeout&#34;: &#34;10s&#34;,&#34;passes&#34;: 2, &#34;fails&#34;: 1,&#34;stream&#34;: {&#34;send&#34;: &#34;zhao\\x6B\\x61\\x6E\\x67&#34;,&#34;expect&#34;: &#34;\\x74\\x68\\x61\\x6E\\x6B\\x20you&#34;},&#34;ssl&#34;: {&#34;enable&#34;: true,&#34;ntls&#34;: true,&#34;ciphers&#34;:&#34;ECC-SM2-SM4-CBC-SM3:ECDHE-SM2-WITH-SM4-SM3:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:ECDHE-RSA-AES128-SHA256:!aNULL:!eNULL:!RC4:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS&#34; }}&#39; 返回 { &#34;code&#34;: 0, &#34;msg&#34;: &#34;success&#34; } 参数说明： stcp 为四层健康检查配置的关键字,表示使用TCP协议 demo 为对应下发的upstream的name stream 意义同 “健康检查TCP配置方式” ssl TLS相关配置 ssl.enable 是否启tls，默认 false ssl.ntls 是否是国密算法. ssl.ciphers 支持的算法 默认&#34;DEFAULT&#34; 3.4 健康检查UDP配置方式 请求BODY { &#34;interval&#34;: &#34;3s&#34;, &#34;jitter&#34;: &#34;1s&#34;, &#34;timeout&#34;: &#34;10s&#34;, &#34;passes&#34;: 2, &#34;fails&#34;: 1, &#34;stream&#34;: { /* 开启四层健康检查 */ &#34;send&#34;: &#34;zhao\\x6B\\x61\\x6E\\x67&#34;, /* 期望发送的文本 */ &#34;expect&#34;: &#34;\\x74\\x68\\x61\\x6E\\x6B\\x20you&#34; /* 期望收到的文本 */ } } 请求命令 curl -s http://127.0.0.1:8081/api/v1/hc/sudp/tmux -XPOST -d &#39;{&#34;interval&#34;: &#34;3s&#34;,&#34;jitter&#34;: &#34;1s&#34;,&#34;timeout&#34;: &#34;10s&#34;,&#34;passes&#34;: 2, &#34;fails&#34;: 1, &#34;stream&#34;: {&#34;send&#34;: &#34;zhao\\x6B\\x61\\x6E\\x67&#34;,&#34;expect&#34;: &#34;\\x74\\x68\\x61\\x6E\\x6B\\x20you&#34;}}&#39; 返回 { &#34;code&#34;: 0, &#34;msg&#34;: &#34;success&#34; } 参数说明： sudp为四层健康检查配置的关键字 tmux为对应下发的upstream的name stream 意义同 “健康检查TCP配置方式” UDP方式不支持TLS 请求命令 curl -s http://127.0.0.1:8081/api/v1/hc/sudp/demo -XPOST -d &#39;{&#34;interval&#34;: &#34;3s&#34;,&#34;jitter&#34;: &#34;1s&#34;,&#34;timeout&#34;: &#34;10s&#34;,&#34;passes&#34;: 2, &#34;fails&#34;: 1,&#34;stream&#34;: {&#34;send&#34;: &#34;zhao\\x6B\\x61\\x6E\\x67&#34;,&#34;expect&#34;: &#34;\\x74\\x68\\x61\\x6E\\x6B\\x20you&#34;},&#34;ssl&#34;: {&#34;enable&#34;: true,&#34;ntls&#34;: true,&#34;ciphers&#34;:&#34;ECC-SM2-SM4-CBC-SM3:ECDHE-SM2-WITH-SM4-SM3:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:ECDHE-RSA-AES128-SHA256:!aNULL:!eNULL:!RC4:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS&#34; }}&#39; 返回 { &#34;code&#34;: 14, &#34;msg&#34;: &#34;UDP does not support tls&#34; } 4. 调用样例 4.1 增加新的stream，TCP健康检查 请求</description>
    </item>
    <item>
      <title>http主动健康检查</title>
      <link>https://docs.njet.org.cn/docs/v4.0.1/reference/upstream/health_check/http_health_check/index.html</link>
      <pubDate>Mon, 18 Aug 2025 11:32:41 +0800</pubDate>
      <guid>https://docs.njet.org.cn/docs/v4.0.1/reference/upstream/health_check/http_health_check/index.html</guid>
      <description>1. 功能说明 主动健康检查通过API接口进行动态配置，实现健康检查由独立进程完成，对正在使用的进程无影响，完成后修改共享内存完成upstream状态回写。&#xA;2. 依赖模块 健康检查功能依赖模块：&#xA;load_module modules/njt_http_sendmsg_module.so; load_module modules/njt_helper_health_check_module.so; 3. 指令说明 3.1 数据面指令说明 health_check&#xA;语法: health_check mandatory | persistent;&#xA;默认值: —&#xA;允许配置位置: upstream&#xA;配置项 必填 配置说明 health_check 是 主动发起请求测试上游服务是否正常，如不正常则及时剔除对应服务 mandatory 是 配置后，静态文件server，api，域名解析出的server 初始状态都是checking 状态（不做业务，等待健康检查），然后会使用默认主动健康检查配置立即进行健康检查，然后更新结果为 health 或 unhealth persistent 否 配置之后reload 后，会保留上次的健康状态。 直到下次健康检查。 3.2 配置示例 upstream backend1 { zone backend1 128k; server 192.168.40.144:5555; health_check mandatory persistent; } 3.3 API说明 查询全部健康检查列表：&#xA;GET http://ip+port/api/v1/hc/http/ 查询具体upstream名为backend的健康检查配置：&#xA;GET http://ip+port/api/v1/hc/http/backend 向具体upstream名为backend添加健康检查：&#xA;POST http://ip+port/api/v1/hc/http/backend 删除具体upstream名为backend的健康检查：</description>
    </item>
  </channel>
</rss>