AWS 弹性负载均衡器超时
Posted
技术标签:
【中文标题】AWS 弹性负载均衡器超时【英文标题】:AWS elastic load balancer timeout 【发布时间】:2017-09-30 12:00:53 【问题描述】:我们一直在针对行为不端的 Web 应用程序(唉,我们无法控制)测试 Elastic Beanstalk。有时在发送响应的第一个字节之前需要超过 60 秒,但在 60 秒标记处,应用程序会从 nginx 发送 504: Gateway Timeout 消息。
我们需要将 60 秒设置为更高的值。我们尝试将这些设置添加到我们发送到“aws eb create-environment...”的文件中
"Namespace": "aws:elb:policies:myPolicy",
"OptionName": "ConnectionSettingIdleTimeout", "Value": "300"
但它们似乎不影响 60 秒超时。我们做错了什么?
【问题讨论】:
您收到来自 nginx 的消息,而不是 ELB,因此更改 ELB 设置无济于事。 这意味着我必须这样做:***.com/questions/23709841/… 对吗? 老实说 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"
在后一种情况下,考虑在http
块内提高nginx.conf
中的keepalive_timeout
限制,类似于以下内容,然后重新启动它(sudo service nginx restart
):
http
// ...
keepalive_timeout 180s;
【讨论】:
太棒了。你知道如何通过 eb 扩展方便地指定 ngnix 超时吗? 不,很遗憾。我在不使用ebextensions
的情况下完成了 Nginx 和 ELB 的所有配置调优。也许您会对link 中的示例感兴趣。以上是关于AWS 弹性负载均衡器超时的主要内容,如果未能解决你的问题,请参考以下文章