【问题标题】:How to prevent Rails 6 from blocking my AWS EC2 instances?如何防止 Rails 6 阻止我的 AWS EC2 实例?
【发布时间】:2020-01-12 16:19:01
【问题描述】:

我有一些 Rails 6 应用程序,通过 Opsworks 部署在 AWS。

升级到 Rails 6 后,应用会阻止对其自身实例的运行状况检查,并导致负载均衡器关闭该实例。

我想知道如何使用动态 IP 地址自动将我的所有 EC2 实例列入白名单?而不是一一添加到config/application.rb?

谢谢

Rails.application.configure do
  # Whitelist one hostname
  config.hosts << "hostname"
  # Whitelist a test domain
  config.hosts << /application\.local\Z/
  # config.hosts.clear 
end

【问题讨论】:

    标签: amazon-web-services aws-opsworks ruby-on-rails-6


    【解决方案1】:

    对我有用的解决方法是

    config.hosts.clear
    

    【讨论】:

    • 谢谢,看起来这也是 mee 的当前解决方法,但它并不理想,因为它禁用了该功能。最佳
    • 我认为这并不安全,因为您将允许所有主机访问您的应用程序。您应该将所需的主机列入白名单。
    【解决方案2】:

    我不久前发布了这个问题。更安全的解决方案是从可以从 AWS 控制台设置的环境变量中读取 IP 地址。

    config.hosts << ENV["INSTANCE_IP"]
    config.hosts << ENV["INSTANCE_IP2"]
    ...
    config.hosts << ENV["INSTANCE_IPn"]
    

    至少通过这种方式,当实例具有动态IP时,每次IP地址更改时都不需要新的git commit。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-15
      • 2013-07-05
      • 2018-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-05
      相关资源
      最近更新 更多