调试功能

    在请求的响应头中,通过 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

      1. $ 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 的响应头。