ElasticBeanstalk 自动缩放导致 502 Bad Gateway

Bry*_*isi 4 nginx amazon-web-services

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

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

我的预感是,在 RoR 应用程序运行之前,该实例已在 ELB 上投入使用,但 nginx 不知道这一点。我能做些什么来检查和防止它吗?

Bry*_*isi 5

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

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