nginx - Nginx在上游响应日志中显示2种不同的状态

标签 nginx kubernetes nginx-ingress nginx-log

我在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,因此您的日志可以这样解释:

  • 第一个上游已死(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
    
  • 第二上游作品(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
    

    附言JFYI,这是一个很酷的HTTP header 状态图

    关于nginx - Nginx在上游响应日志中显示2种不同的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58111709/

    相关文章:

    nginx - Windows 10 单节点 Kubernetes 基础设施上 docker-desktop 社区版上的 MetalLB 外部负载均衡器

    certificate - 如何用通配符证书替换 "Kubernetes fake certificate"(在裸机私有(private)云上)Nginx Ingress 和证书管理器

    Django+gunicorn+nginx上传大文件502错误

    docker - 如何将私有(private)组织镜像从 docker hub 部署到 kubernetes

    java - 通过流式传输将分段文件上传到 Amazon S3 时内存使用率过高?

    docker - 入口 nginx digital ocean 上的 ssl 终止

    linux - Pimcore/install 一次又一次地重定向

    javascript - 在 NGINX docker 容器中启动前运行 bash 脚本

    django - Nginx+Gunicorn+Supervisor+Django 报错

    kubernetes - 由于 pod 同步错误,1/4 pod 出现 CrashLoopBackOff 错误