从 Rails 5 升级到 rails 6 后,ELB 目标组健康检查失败并显示 403
ELB Target groups health checks are failing with 403 after upgrading from Rails 5 to rails 6
ELB 目标组的健康检查失败,状态代码 403 在升级 rails 到 rails 6[=22= 后被禁止].但是,运行状况检查正在开发中运行,但不适用于 AWS 云。
健康检查成功 rails 5 但 rails 6.
如有任何帮助,我们将不胜感激。
发生这种情况是因为 Rails 6 中的一项新功能:主机授权。它检查传入的请求是否具有正确的主机名,如果不正确,它 returns 403.
AWS ELB 在访问健康检查端点时没有设置 Host
header,这导致它失败。
您可以通过将 Web 服务器内部 IP(ELB 使用内部 IP 访问它)添加到允许的主机来禁用该功能(config.hosts.clear
)来解决问题,如下所示:
config.hosts = ["example.org", IPAddr.new("10.0.99.0/24")]
ELB 目标组的健康检查失败,状态代码 403 在升级 rails 到 rails 6[=22= 后被禁止].但是,运行状况检查正在开发中运行,但不适用于 AWS 云。
健康检查成功 rails 5 但 rails 6.
如有任何帮助,我们将不胜感激。
发生这种情况是因为 Rails 6 中的一项新功能:主机授权。它检查传入的请求是否具有正确的主机名,如果不正确,它 returns 403.
AWS ELB 在访问健康检查端点时没有设置 Host
header,这导致它失败。
您可以通过将 Web 服务器内部 IP(ELB 使用内部 IP 访问它)添加到允许的主机来禁用该功能(config.hosts.clear
)来解决问题,如下所示:
config.hosts = ["example.org", IPAddr.new("10.0.99.0/24")]