amazon-elb - 从 Rails 5 升级到 Rails 6 后,ELB 目标组运行状况检查失败,返回 403

标签 amazon-elb ruby-on-rails-6 rails-upgrade

将 Rails 升级到 rails 6 后,ELB 目标组的运行状况检查失败,状态代码为 403 禁止。然而,健康检查正在开发中运行,但在 AWS 云上不起作用。

健康检查在 rails 5 上成功,但在 rails 6 上失败。

任何帮助将不胜感激。

最佳答案

发生这种情况是因为 Rails 6 中的一项新功能:主机授权。它检查传入请求是否具有正确的主机名,如果不正确,则返回 403。

AWS ELB 在访问运行状况检查端点时未设置 Host header ,这导致其失败。

您可以通过将 Web 服务器内部 IP(ELB 使用内部 IP 访问它)添加到允许的主机来禁用该功能 (config.hosts.clear) 来解决该问题,如下所示:

  config.hosts = ["example.org", IPAddr.new("10.0.99.0/24")]

关于amazon-elb - 从 Rails 5 升级到 Rails 6 后,ELB 目标组运行状况检查失败,返回 403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63988780/

相关文章:

ruby-on-rails - 如何使用 Turbo/Stimulus 插入新记录的表格?

ruby-on-rails - Rails 错误地将重定向响应发送为状态 200

ruby-on-rails - 从 Rails 4 迁移到 Rails 5:使用 ActionDispatch::Request.parameter_parsers 和 config.middleware

amazon-web-services - 如何设置 AWS ELB 阻止来自给定 IP 的过多查询?

ssl - EC2 : HTTPS Load Balancing for multiple domains

amazon-ec2 - 没有从 ELB 到其中一个 Auto Scaling 实例的流量

go - 如何从将x-real-ip和x-forward-for添加到 header 的负载平衡器获取gRPC中的客户端IP地址?

ruby-on-rails - 如何使用 Ruby 2.7.0 修复 Rails 的警告消息

mysql - Rails 升级包括方法行为更改