2017-05-02 122 views
0

我们一直在针对行为异常的Web应用程序(我们唉,无法控制)测试Elastic Beanstalk。有时,在发送响应的第一个字节之前需要60秒以上的时间,但在60秒的时间内,应用程序会从nginx发送504:网关超时消息。AWS弹性负载均衡器超时

我们需要将60秒设置为更高的值。我们试图将这些设置保存到文件,我们发送到“AWS EB创造环境......”

{ "Namespace": "aws:elb:policies:myPolicy", 
"OptionName": "ConnectionSettingIdleTimeout", "Value": "300" } 

但他们似乎并没有影响到60秒超时。我们做错了什么?

+1

您收到来自nginx的消息,而不是ELB,因此chaining ELB设置无济于事。 –

+0

这意味着我必须做这样的事情:http://stackoverflow.com/questions/23709841/how-to-change-nginx-config-in-amazon-elastic-beanstalk-running-a-docker-instance 正确? –

+0

IDK说实话。 –

回答

1

报告的错误可能来自您的ELB,但更多的时候来自Nginx。在前一种情况下,你可以使用AWS CLI提高IdleTimeout到一个更高的极限:

# Modify ELB idle-timeout 
aws elb modify-load-balancer-attributes --load-balancer-name <myloadbalancer> --load-balancer-attributes "{\"ConnectionSettings\":{\"IdleTimeout\":180}}" 

在后一种情况下,考虑提高keepalive_timeout极限nginx.conf类似如下的http块中,然后重新启动它(sudo service nginx restart ):

http { 
    // ... 
    keepalive_timeout 180s; 
} 
+0

太棒了。你知道如何通过eb扩展指定ngnix超时吗? –

+0

不,不幸的。我没有使用'ebextensions'就做了Nginx和ELB的所有配置调整。也许这个[link]中的例子(https://medium.com/trisfera/getting-to-know-and-love-aws-elastic-beanstalk-configuration-files-ebextensions-9a4502a26e3c)将会引起你的兴趣。 –