我的API中有一个端点,它需要一些时间才能返回一个响应(>1分钟)。
我已经将我的API部署到Elasticbean秸秆,现在当我尝试访问它时,我从Nginx获得了504网关超时
<html>
<head><title>504 Gateway Time-out</title></head>
<body>
<center><h1>504 Gateway Time-out</h1></center>
</body>
</html>我怎么才能解决呢?
发布于 2021-08-29 16:31:16
像您这样的超时错误应该通过对软件本身的改进来理想地修复,但是如果由于任何原因不能这样做,那么您可以增加nginx和Load均衡器的超时。
在Amazon的早期版本中,您需要在名为.ebextensions的目录中部署具有自定义nginx配置的代码。
对于Amazon 2,情况完全相同,只是略有不同,而不是使用.ebextensions,而是需要在平台的配置中使用.platform文件夹。
因此,在应用程序的预期ElasticBeanstalk包中创建以下结构-
eb-package
└── src
└── .ebextensions
└── .platform
└── nginx
└── conf.d
└── timeout.conf并将以下内容添加到timeout.conf文件中
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;您应该知道,在某些情况下,需要通过使用AWS控制台(在EC2下)手动配置负载均衡器超时,或者通过在.ebextensions目录中提供配置文件来增加负载均衡器的超时
例如(注意:此配置将根据您使用的负载均衡器的类型而有所不同):
option_settings:
- namespace: aws:elb:policies
option_name: ConnectionSettingIdleTimeout
value: 300参见经典负载均衡器与应用程序负载均衡器配置
在AWS的文档中(按08/29/2021),更新的应用程序负载均衡器没有默认超时。经典负载均衡器有60秒的超时时间。
aws:elb:policies对aws:elbv2:loadbalancer
有关更多信息,请参见
https://stackoverflow.com/questions/68974919
复制相似问题