ElasticBeanstalk 自动扩展导致 502 Bad Gateway

ElasticBeanstalk 自动扩展导致 502 Bad Gateway

我们正在使用 AWS ElasticBeanstalk 为我们的 Ruby on Rails 应用程序提供服务,并且最近启用了自动扩展。自动扩展按预期工作,但在自动扩展之后的短暂时间内,一些新实例会导致502 Bad Gateway返回错误。

几分钟后,实例开始按预期工作。我不确定是什么原因造成的,我不知道该怎么做才能防止这种情况发生。

我的直觉是,在 RoR 应用程序运行之前,该实例已在 ELB 上投入使用,但 nginx 不知道这一点。我可以做些什么来检查并防止这种情况发生?

答案1

事实证明,这是由于 ELB 中的配置错误造成的。它有一个不正确的健康检查 URL,无论 RoR 状态如何,都会返回 200。因此,这告诉 ELB,此 EB 实例已准备就绪,并且在实际准备就绪之前已投入使用,因此导致 502 错误。

将 ELB 健康检查 URL 设置为返回 200 以外的其他内容的正确 URL,可防止 EB 实例在 ELB 上投入使用,从而解决了此问题。

相关内容