-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Description
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
}
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
Labels
Type
Projects
Status