【问题标题】:What does binding a Rails Server to 0.0.0.0 buy you?将 Rails 服务器绑定到 0.0.0.0 能给你带来什么?
【发布时间】:2015-05-18 23:37:01
【问题描述】:

我使用“www.xip.io”作为 DNS 通配符,用于在不同设备上进行测试。我将我的主域设置为我的 IP 地址。我用bundle exec rails server 启动了一个rails 服务器,然后我去www.<ip_address>.xip.io:3000 并注意到我的rails 服务器没有响应。

但是,如果我像 bundle exec rails server -b 0.0.0.0 那样将我的 Rails 服务器绑定到 0.0.0.0,它就可以工作!我不明白 0.0.0.0 告诉我的服务器如何工作。有人能理解吗?

【问题讨论】:

    标签: ruby-on-rails dns bind server


    【解决方案1】:

    绑定到0.0.0.0 告诉服务绑定到您机器上的所有 IP 地址。 Rails 服务器过去默认执行此操作,但 4.2 更改为仅绑定到 localhost

    基本上,如果它只绑定到localhost,那么它只会在本地响应localhost127.0.0.1,因为它不是公共IP 地址,因此无法通过DNS 服务工作。

    当您使用0.0.0.0 时,它将绑定到本地主机到您的可路由 IP 地址。

    【讨论】:

    • 完美。感谢 4.2 掘金。
    • 不客气,这对很多人来说是一个令人讨厌的(宣传不佳的)陷阱。
    • 天哪,这让我快疯了。如果您尝试从 docker 容器运行 rails 并且未指定此选项,则无论您做什么,docker 容器都不会响应。这是救命稻草。
    【解决方案2】:

    我认为您在来宾/虚拟机中的任何时候都需要使用绑定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-22
      • 1970-01-01
      • 1970-01-01
      • 2012-04-21
      • 2021-01-15
      • 1970-01-01
      • 2016-11-10
      • 1970-01-01
      相关资源
      最近更新 更多