我在kubernetes集群中运行了一个nginx-inress Controller ,该请求的日志语句之一如下所示:
upstream_response_length: 0, 840
upstream_response_time: 60.000, 0.760
upstream_status: 504, 200
我不太明白这是什么意思? Nginx的响应超时等于60秒,并尝试在此之后再请求一个时间(成功)并记录两个请求?
附言配置日志格式:
log-format-upstream: >-
{
...
"upstream_status": "$upstream_status",
"upstream_response_length": "$upstream_response_length",
"upstream_response_time": "$upstream_response_time",
...
}
最佳答案
根据 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
附言JFYI,这是一个很酷的HTTP header 状态图
关于nginx - Nginx在上游响应日志中显示2种不同的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58111709/