如何解决Nginx 报告“上游连接超时”
说明: k8s nginx-ingress-controllers 以负载均衡器类型(由 metallb 实现)公开,ip 地址为 192.168.1.254。另一个nginx集群在k8s集群前面,只有一个upstream,192.168.1.254(lb ip addr)。请求流向:client -> nginx cluster -> nginx-ingress-controllers-> services。
问题: 有时 nginx 集群报告非常小的“上游(192.168.1.254)超时”,最终客户端从 nginx 得到 504 超时。
但是当我删除 nginx 集群并将请求流切换到:客户端 -> nginx-ingress-controllers-> 服务时。一切顺利,客户端不再出现 504 超时。我确定 nginx 集群之间的网络并且 nginx 入口控制器运行良好。
大多数请求都可以被nginx集群处理并返回状态200。我不知道为什么很少有请求报告“上游超时”并返回状态504。
解决方法
这很可能是文件上传速度缓慢(您显示的请求都是 POST),无法满足限制。
您可以为可以上传的应用程序路径设置更大的超时值。如果您正在使用入口控制器,您最好为此创建一个单独的入口对象。您可以使用 these 批注管理超时,例如:
annotations:
nginx.ingress.kubernetes.io/proxy-send-timeout: 300s
nginx.ingress.kubernetes.io/proxy-read-timeout: 300s
这两个注释将最长上传时间定义为 5 分钟。
如果您手动配置 nginx,您可以使用 proxy_read_timeout 和 proxy_send_timeout 设置限制。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。