调试功能
在请求的响应头中,通过 X-APISIX-Upstream-Status
这个响应头,我们可以有效的识别 5xx
状态码的来源。当 状态码来源于 Upstream
时,在响应头中可以看到 X-APISIX-Upstream-Status
这个响应头,并且这个响应头的值为响应的状态码。当 5xx
状态码来源于 APISIX
时,响应头中没有 X-APISIX-Upstream-Status
的响应头信息。也就是只有 5xx
状态码来源于 Upstream
时,才会有 X-APISIX-Upstream-Status
响应头。
示例1:502
响应状态码来源于 (IP地址不可用)
具有 X-APISIX-Upstream-Status: 502
的响应头。
示例2: 502
响应状态码来源于 APISIX
$ curl http://127.0.0.1:9080/hello -v......< HTTP/1.1 500 Internal Server Error< Date: Wed, 25 Nov 2020 14:50:20 GMT< Content-Type: text/plain; charset=utf-8< Transfer-Encoding: chunked< Connection: keep-alive< Server: APISIX/2.0<Fault Injection!
没有 X-APISIX-Upstream-Status
的响应头。
示例3:Upstream
具有多节点,并且所有节点不可用
具有 X-APISIX-Upstream-Status: 502, 502, 502
的响应头。