1

我在 kubernetes 集群中运行 nginx-ingress 控制器,我的请求日志语句之一如下所示:

upstream_response_length: 0, 840
upstream_response_time: 60.000, 0.760
upstream_status: 504, 200

我不太明白这是什么意思?Nginx 的响应超时等于 60 秒,然后尝试再请求一次(成功)并记录两个请求?

日志格式的 PS Config:

log-format-upstream: >-
      {
      ...
      "upstream_status": "$upstream_status",
      "upstream_response_length": "$upstream_response_length",
      "upstream_response_time": "$upstream_response_time",
      ...
      }
4

1 回答 1

2

根据ingress-nginxsplit_upstream_var的方法,对健康检查的结果进行拆分nginx

由于nginx可以有多个 upstreams,您的日志可以这样解释:

  1. 第一个上游已死(504)
upstream_response_length: 0 // responce from dead upstream has zero length
upstream_response_time: 60.000 // nginx dropped connection after 60sec
upstream_status: 504 // responce code, upstream doesn't answer
  1. 第二上游作品 (200)
upstream_response_length: 840 // healthy upstream returned 840b 
upstream_response_time: 0.760 // healthy upstream responced in 0.760
upstream_status: 200 // responce code, upstream is ok

PS JFYI,这是一个很酷的 HTTP 标头状态图

Http-headers-状态

于 2019-09-26T09:22:09.907 回答