我有我的web应用程序运行在AWS EC2实例上,我进行了一个大约5-10分钟的ajax调用,我在Google Chrome中看到web控制台,我得到了这个504 (Gateway Timeout)
,我如何才能增加它的价值,这与阿帕奇有关吗?谢谢
发布于 2013-11-20 07:20:28
ELB默认的超时时间是60秒;据我所知,没有办法延长这个限制,尽管this page建议亚马逊支持可以为你做一些事情(还建议了一个解决问题的方法):
第6点) Amazon ELB超时60秒(保持空闲)
如果处于空闲状态,Amazon ELB当前会在60秒内使持久套接字连接超时。对于在后端EC2生成大文件(PDF、报告等)的用例,这种情况将是一个问题,将它们作为响应发送回来,并在整个生成过程中保持连接空闲。为了避免这种情况,您必须每隔40秒左右在套接字上发送一些内容,以保持Amazon ELB中的连接活动。注意:我听说我们可以在向AWS支持团队解释此案例后扩展此值。
编辑:正如下面的评论者指出的那样,从July 24th, 2014开始,这是可以在你的亚马逊网络服务控制台中配置的。
发布于 2021-05-27 23:51:50
您是否尝试更改ELB上的超时时间?增加负载均衡器属性中的不活动限制连接。然后,您可以将默认限制从60更改为120。
发布于 2021-08-03 14:55:57
在SO here上有一个相关的问题。确保您正在执行以下操作(来自此相关问题):
下一步是增加上一个答案中提到的ELB空闲时间。如果您使用的是terraform,则可以在入口的注释中使用:
"alb.ingress.kubernetes.io/load-balancer-attributes" = "idle_timeout.timeout_seconds=600"
通常,在ELB之上有一个NGINX入口控制器,帮助将流量定向到您的服务。后者也有超时,通常为60秒。您需要根据指定的here更改其超时。如果您使用的是terraform,则可以在入口注释中指定它们,如下所示(将它们从60秒更改为300秒):
"nginx.ingress.kubernetes.io/proxy-connect-timeout" = "10"
"nginx.ingress.kubernetes.io/proxy-send-timeout" = "300"
"nginx.ingress.kubernetes.io/proxy-read-timeout" = "300"
然后,您可以按照链接2和3中的说明使用shell进入入口控制器,并检查您的nginx.conf文件。应该应用新的限制。
https://stackoverflow.com/questions/20083673
复制相似问题