我正在kubernetes集群中运行一个nginx-ingress控制器,并且我的请求的日志语句之一如下:
upstream_response_length: 0, 840
upstream_response_time: 60.000, 0.760
upstream_status: 504, 200
我不太明白这是什么意思? Nginx的响应超时等于60秒,并尝试在此之后再请求一个时间(成功)并记录两个请求?
P.S。配置日志格式:
log-format-upstream: >-
{
...
"upstream_status": "$upstream_status",
"upstream_response_length": "$upstream_response_length",
"upstream_response_time": "$upstream_response_time",
...
}
答案 0 :(得分:2)
根据split_upstream_var
的ingress-nginx方法,它是splits nginx
health checks的结果。
由于nginx
可以包含several upstreams,因此您的日志可以这样解释:
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
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
P.S。 JFYI,这是一个很酷的HTTP标头状态图