Skip to content

help request: Health checks only start for the first accessed route; other routes' upstreams are not checked #12145

@liu1004010308

Description

@liu1004010308

Description

Hi team,
I'm using APISIX and have defined multiple routes with different upstreams. However, I've noticed that only the upstream associated with the first accessed route has active health checks running. Other upstreams do not seem to initiate health checks
Here is a summary of the issue:
I have two routes, each with a unique host, uri, vars, and upstream configuration (defined inline).
When I access the first route, its upstream starts health checking as expected.
When I access the second route — confirmed via logs that the request matches and the upstream is used — APISIX does not initiate health checks for that upstream.

two routes like this:
one route:
{
"create_time": 1744595151,
"id": "00000000000000000070",
"enable_websocket": true,
"hosts": [
"yun.test.com.cn"
],
"uris": [
"/path1/path2*"
],
"methods": [
"GET",
"POST",
"PUT",
"PATCH",
"OPTIONS",
"HEAD",
"DELETE",
"CONNECT",
"TRACE",
"PURGE"
],
"desc": "",
"update_time": 1744713210,
"plugins": {
"proxy-rewrite": {
"headers": {
"Upgrade": "$http_upgrade",
"X-Real-IP": "$remote_addr",
"X-Forwarded-For": "$proxy_add_x_forwarded_for",
"Connection": "upgrade",
"Host": "$host"
},
"use_real_request_uri_unsafe": true
}
},
"vars": [
[
"server_port",
"==",
9002
]
],
"priority": 0,
"upstream": {
"scheme": "http",
"hash_on": "vars",
"type": "roundrobin",
"timeout": {
"send": 7200,
"connect": 60,
"read": 7200
},
"pass_host": "pass",
"nodes": {
"10.13.90.23:10004": 50,
"10.13.90.24:10004": 50
},
"checks": {
"active": {
"https_verify_certificate": true,
"type": "tcp",
"timeout": 5,
"unhealthy": {
"interval": 5,
"http_failures": 3,
"tcp_failures": 2,
"timeouts": 3,
"http_statuses": [
429,
404,
500,
501,
502,
503,
504,
505
]
},
"concurrency": 10,
"healthy": {
"interval": 2,
"http_statuses": [
200,
302
],
"successes": 1
},
"http_path": "/"
},
"passive": {
"healthy": {
"http_statuses": [
200,
201
],
"successes": 3
},
"type": "http",
"unhealthy": {
"timeouts": 7,
"http_statuses": [
500
],
"http_failures": 3,
"tcp_failures": 3
}
}
},
"keepalive_pool": {
"idle_timeout": 60,
"size": 320,
"requests": 1000
}
},
"status": 1
}

another route
{
"create_time": 1744595151,
"id": "00000000000000000074",
"enable_websocket": true,
"hosts": [
"10.13.90.22"
],
"uris": [
"*"
],
"methods": [
"GET",
"POST",
"PUT",
"PATCH",
"OPTIONS",
"HEAD",
"DELETE",
"CONNECT",
"TRACE",
"PURGE"
],
"desc": "",
"update_time": 1744713210,
"plugins": {
"proxy-rewrite": {
"headers": {
"Upgrade": "$http_upgrade",
"X-Real-IP": "$remote_addr",
"X-Forwarded-For": "$proxy_add_x_forwarded_for",
"Connection": "upgrade",
"Host": "$host"
},
"use_real_request_uri_unsafe": true
}
},
"vars": [
[
"server_port",
"==",
9003
]
],
"priority": 0,
"upstream": {
"scheme": "http",
"hash_on": "vars",
"type": "roundrobin",
"timeout": {
"send": 7200,
"connect": 60,
"read": 7200
},
"pass_host": "pass",
"nodes": {
"10.13.90.23:10005": 50,
"10.13.90.24:10005": 50
},
"checks": {
"active": {
"https_verify_certificate": true,
"type": "tcp",
"timeout": 5,
"unhealthy": {
"interval": 5,
"http_failures": 3,
"tcp_failures": 2,
"timeouts": 3,
"http_statuses": [
429,
404,
500,
501,
502,
503,
504,
505
]
},
"concurrency": 10,
"healthy": {
"interval": 2,
"http_statuses": [
200,
302
],
"successes": 1
},
"http_path": "/"
},
"passive": {
"healthy": {
"http_statuses": [
200,
201
],
"successes": 3
},
"type": "http",
"unhealthy": {
"timeouts": 7,
"http_statuses": [
500
],
"http_failures": 3,
"tcp_failures": 3
}
}
},
"keepalive_pool": {
"idle_timeout": 60,
"size": 320,
"requests": 1000
}
},
"status": 1
}

debug log like this:
Image

Environment

  • APISIX version (run apisix version):3.11
  • Operating system (run uname -a): Linux centos79 3.10.0-1160.el7.x86_64 change: added doc of how to load plugin. #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionlabel for questions asked by users

    Type

    No type

    Projects

    Status

    ✅ Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions