首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用aws ecs运行映像抛出504网关超时

使用aws ecs运行映像抛出504网关超时
EN

Stack Overflow用户
提问于 2019-09-11 11:34:26
回答 2查看 9.6K关注 0票数 9

我伪造了我的申请表。如果我用码头跑的话,一切都会好的。我试着用ecs fargate运行它,并把它放在ALB的前面。如果我试图通过ALB dns访问我的应用程序,我会得到一个504网关淡出回来。

在寻找解决方案时,我找到了一个帖子,它告诉我将Tomcat超时设置得比ELB超时更高,但这没有帮助。

Dockerfile

代码语言:javascript
运行
复制
FROM tomcat:8.0.20-jre8
RUN sed -i 's/connectionTimeout="20000"/connectionTimeout="70000"/' /usr/local/tomcat/conf/server.xml
CMD ["catalina.sh","run"]
COPY /target/Webshop.war /usr/local/tomcat/webapps/

ELB日志

代码语言:javascript
运行
复制
http 2019-09-11T11:20:50.585293Z app/Doces-Backe-19RQJLVNHYG2P/8fb4f4079bb6ff9f 66.85.6.136:47767 - -1 -1 -1 503 - 18 348 "GET http://:8080/ HTTP/1.0" "-" - - arn:aws:elasticloadbalancing:eu-central-1:573575081005:targetgroup/ecs-Docest-de-webshop/8df4f0978484f8bd "Root=1-5d78d892-58886d3490906f0fa3914563" "-" "-" 0 2019-09-11T11:20:50.462000Z "forward" "-" "-"
http 2019-09-11T11:23:23.535869Z app/Doces-Backe-19RQJLVNHYG2P/8fb4f4079bb6ff9f 66.85.6.136:50950 10.10.11.140:8080 -1 -1 -1 504 - 18 303 "GET http://:8080/ HTTP/1.0" "-" - - arn:aws:elasticloadbalancing:eu-central-1:573575081005:targetgroup/ecs-Docest-de-webshop/8df4f0978484f8bd "Root=1-5d78d921-a236121716bd1bd209625fd8" "-" "-" 0 2019-09-11T11:23:13.415000Z "forward" "-" "-"
http 2019-09-11T11:23:56.286426Z app/Doces-Backe-19RQJLVNHYG2P/8fb4f4079bb6ff9f 66.85.6.136:51658 10.10.11.140:8080 -1 -1 -1 504 - 18 303 "GET http://:8080/ HTTP/1.0" "-" - - arn:aws:elasticloadbalancing:eu-central-1:573575081005:targetgroup/ecs-Docest-de-webshop/8df4f0978484f8bd "Root=1-5d78d942-22a1680464884762e02ec940" "-" "-" 0 2019-09-11T11:23:46.156000Z "forward" "-" "-"
http 2019-09-11T11:23:27.513803Z app/Doces-Backe-19RQJLVNHYG2P/8fb4f4079bb6ff9f 66.85.6.136:51034 10.10.11.140:8080 -1 -1 -1 504 - 18 303 "GET http://:8080/ HTTP/1.0" "-" - - arn:aws:elasticloadbalancing:eu-central-1:573575081005:targetgroup/ecs-Docest-de-webshop/8df4f0978484f8bd "Root=1-5d78d925-b6b5daf0d0f733140aea0f84" "-" "-" 0 2019-09-11T11:23:17.393000Z "forward" "-" "-"

我希望看到我的申请在elb运行。

谢谢你的帮忙!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-06 10:33:29

解决方案:

问题是,我在负载均衡器的安全组中设置了正确的端口,但没有在ECS服务中设置正确的端口。所以我在那里打开了所需的端口,现在它起作用了。

程序:

  1. 去你的集群
  2. 带着问题去服务
  3. 单击“网络访问”项下的“安全组”并打开所需端口

谢谢!

票数 8
EN

Stack Overflow用户

发布于 2019-09-11 12:36:12

gateway timeout背后可能有多种原因。我唯一不喜欢法尔盖特的地方是debug-log。@AWS团队默认应启用fargate服务的日志配置,因为在没有日志的情况下很难调试这些问题。

更好的方法是配置日志驱动程序并将日志推送到云监视,并查看实际问题,同时在任务定义中检查所需端口,并在服务中映射端口。

代码语言:javascript
运行
复制
            "logConfiguration": {
                "logDriver": "awslogs",
                "options": {
                    "awslogs-group": "awslogs-spring",
                    "awslogs-region": "us-west-2",
                    "awslogs-stream-prefix": "awslogs-example"
                }

或来自AWS控制台

您需要将云监视日志的权限或角色分配给任务定义或服务,以将日志推送到云监视。

一旦配置了日志,然后转到云观察日志组并搜索日志组,这样您就可以洞察应用程序了。

但是,要首先解决实际问题,您必须了解Gateway Timeout的错误代码和可能的原因。

HTTP 504:网关超时

说明:指示负载均衡器由于请求在空闲超时期间未完成而关闭了连接。

原因1:应用程序响应时间比配置的空闲超时时间长.

解决方案1:监视HTTPCode_ELB_5XX和延迟度量。如果这些指标有所增加,可能是由于应用程序在空闲超时期间没有响应。有关超时请求的详细信息,请在负载均衡器上启用访问日志,并检查弹性负载平衡生成的日志中的504个响应代码。如果有必要,您可以增加您的容量或增加配置的空闲超时,以便能够完成冗长的操作(例如上载一个大文件)。有关更多信息,请参见为经典负载均衡器配置空闲连接超时,以及如何解决弹性负载平衡的高延迟问题。

原因2:注册实例关闭到弹性负载平衡的连接.

解决方案2:在EC2实例上启用“保持活动”设置,并确保“保持活动超时”大于负载均衡器的空闲超时设置。

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

https://stackoverflow.com/questions/57888256

复制
相关文章

相似问题

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