Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在将 rails 升级到rails 6后,ELB 目标组的运行状况检查失败,状态码为403禁止。然而,健康检查正在开发中,但不在 AWS 云上。
rails 5的健康检查成功,但rails 6的健康检查失败。
任何帮助将不胜感激。
这是因为 Rails 6 中的一个新特性:主机授权。它检查传入的请求是否具有正确的主机名,如果没有,则返回 403。
AWS ELB 在访问健康检查端点时没有设置Host标头,这会导致它失败。
Host
config.hosts.clear您可以通过将 Web 服务器内部 IP(ELB 使用内部 IP 访问它)添加到允许的主机来禁用功能 ( ) 来解决问题,如下所示:
config.hosts.clear
config.hosts = ["example.org", IPAddr.new("10.0.99.0/24")]