Nginx 报告 "upstream connection timeout"
Nginx reports "upstream connection timeout"
说明:
k8s nginx-ingress-controllers 以负载均衡器类型(由 metallb 实现)公开,ip 地址为 192.168.1.254。另一个nginx集群在k8s集群前面,它只有一个upstream是192.168.1.254(lb ip addr)。请求流程route:client -> nginx clusters -> nginx-ingress-controllers-> services.
问题:
有时 nginx 集群报告非常小的“上游(192.168.1.254)超时”,最后客户端从 nginx 获得 504 超时。
但是当我删除 nginx 集群并将请求流切换到:客户端 -> nginx-ingress-controllers-> services.It 进行顺利并且客户端没有任何 504 超时 more.I am确保 nginx 集群和 nginx 入口控制器之间的网络运行良好。
大多数请求都可以由 nginx 集群处理,return 状态 200.I 不知道为什么很少有请求报告“上游超时”和 return 状态 504。
system architecture
nginx cluster reports timeout
tcpdump package track
这很可能是文件上传速度慢(您显示的请求都是 POST),超出了限制。
您可以为可以上传的应用程序路径设置更大的超时值。如果您正在使用入口控制器,您最好为此创建一个单独的入口对象。您可以使用 these 注释管理超时,例如:
annotations:
nginx.ingress.kubernetes.io/proxy-send-timeout: 300s
nginx.ingress.kubernetes.io/proxy-read-timeout: 300s
这两个注释将最大上传时间定义为 5 分钟。
如果您手动配置 nginx,您可以使用 proxy_read_timeout and proxy_send_timeout 设置限制。
说明: k8s nginx-ingress-controllers 以负载均衡器类型(由 metallb 实现)公开,ip 地址为 192.168.1.254。另一个nginx集群在k8s集群前面,它只有一个upstream是192.168.1.254(lb ip addr)。请求流程route:client -> nginx clusters -> nginx-ingress-controllers-> services.
问题: 有时 nginx 集群报告非常小的“上游(192.168.1.254)超时”,最后客户端从 nginx 获得 504 超时。
但是当我删除 nginx 集群并将请求流切换到:客户端 -> nginx-ingress-controllers-> services.It 进行顺利并且客户端没有任何 504 超时 more.I am确保 nginx 集群和 nginx 入口控制器之间的网络运行良好。
大多数请求都可以由 nginx 集群处理,return 状态 200.I 不知道为什么很少有请求报告“上游超时”和 return 状态 504。
system architecture
nginx cluster reports timeout
tcpdump package track
这很可能是文件上传速度慢(您显示的请求都是 POST),超出了限制。
您可以为可以上传的应用程序路径设置更大的超时值。如果您正在使用入口控制器,您最好为此创建一个单独的入口对象。您可以使用 these 注释管理超时,例如:
annotations:
nginx.ingress.kubernetes.io/proxy-send-timeout: 300s
nginx.ingress.kubernetes.io/proxy-read-timeout: 300s
这两个注释将最大上传时间定义为 5 分钟。
如果您手动配置 nginx,您可以使用 proxy_read_timeout and proxy_send_timeout 设置限制。