2017-05-02 169 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)將會引起你的興趣。 –