首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AWS上的504 (网关超时)

AWS上的504 (网关超时)
EN

Stack Overflow用户
提问于 2013-11-20 06:41:48
回答 3查看 14.7K关注 0票数 11

我有我的web应用程序运行在AWS EC2实例上,我进行了一个大约5-10分钟的ajax调用,我在Google Chrome中看到web控制台,我得到了这个504 (Gateway Timeout),我如何才能增加它的价值,这与阿帕奇有关吗?谢谢

EN

回答 3

Stack Overflow用户

发布于 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开始,这是可以在你的亚马逊网络服务控制台中配置的。

票数 12
EN

Stack Overflow用户

发布于 2021-05-27 23:51:50

您是否尝试更改ELB上的超时时间?增加负载均衡器属性中的不活动限制连接。然后,您可以将默认限制从60更改为120。

票数 0
EN

Stack Overflow用户

发布于 2021-08-03 14:55:57

在SO here上有一个相关的问题。确保您正在执行以下操作(来自此相关问题):

  1. 我已经确认容器/ pod正在运行,
  2. 应用程序已经启动,
  3. 如果我在pod中执行,那么我可以运行本地curl命令并从应用程序获得响应。
  4. 我已经检查了入口pod的日志,流量正在到达

一些用于此herehere的有用命令。

下一步是增加上一个答案中提到的ELB空闲时间。如果您使用的是terraform,则可以在入口的注释中使用:

代码语言:javascript
运行
复制
"alb.ingress.kubernetes.io/load-balancer-attributes" = "idle_timeout.timeout_seconds=600"

通常,在ELB之上有一个NGINX入口控制器,帮助将流量定向到您的服务。后者也有超时,通常为60秒。您需要根据指定的here更改其超时。如果您使用的是terraform,则可以在入口注释中指定它们,如下所示(将它们从60秒更改为300秒):

代码语言:javascript
运行
复制
  "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文件。应该应用新的限制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20083673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档