EKS上的Nginx入口504网关超时,其中NLB连接到Nginx入口

时间:2019-04-15 11:13:42

标签: nginx nginx-ingress

我们正在AWS中通过Nginx入口控制器将NLB连接到我们的EKS集群。我们的某些请求会随机收到504网关超时。

我们认为我们已将问题调试到nginx入口。 根据一些Stackoverflow建议,我们使用了Connection标头。 1)我们将连接设置为“关闭”,这无效 2)我们再次将Connection设置为“保持活动”

我们还注意到proxy_read_timeout发生另一种行为,即60秒后,我们在60.xx秒内完成了来自浏览器的请求。当我们将其减少到30时,它变成30.xx,而20变成20.xx。 我们设为1,但仍然会随机获得504网关超时,并且不明白为什么proxy_read_timeout在我们的环境中会出现这种情况。

我们想了解proxy_read_timeout的作用以及为什么会出现上述行为?还有一种方法可以在nginx入口上设置Connection“”(我们无法通过nginx.ingress.kubernetes.io/connection-proxy-header:“”来做到这一点)

谢谢!

1 个答案:

答案 0 :(得分:0)

我们认为我们的问题与此有关:

https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-troubleshooting.html#loopback-timeout

我们正在将内部nlb与我们的nginx入口控制器一起使用,目标通过实例ID注册。我们发现504超时和X秒等待仅发生在与我们的一个入口控制器副本共享一个节点的应用程序上。我们使用nodeSelector,标签,污点和容差的组合将入口控制器强制到自己的节点上,这似乎消除了超时。

我们还将externalTrafficPolicy设置更改为Local。