将 Rails 服务器绑定到 0.0.0.0 能给你带来啥?
Posted
技术标签:
【中文标题】将 Rails 服务器绑定到 0.0.0.0 能给你带来啥?【英文标题】: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 告诉我的服务器如何工作。有人能理解吗?
【问题讨论】:
【参考方案1】:绑定到0.0.0.0
告诉服务绑定到您机器上的所有 IP 地址。 Rails 服务器过去默认执行此操作,但 4.2 更改为仅绑定到 localhost
。
基本上,如果它只绑定到localhost
,那么它只会在本地响应localhost
或127.0.0.1
,因为它不是公共IP 地址,因此无法通过DNS 服务工作。
当您使用0.0.0.0
时,它将绑定到本地主机和到您的可路由 IP 地址。
【讨论】:
完美。感谢 4.2 掘金。 不客气,这对很多人来说是一个令人讨厌的(宣传不佳的)陷阱。 天哪,这让我快疯了。如果您尝试从 docker 容器运行 rails 并且未指定此选项,则无论您做什么,docker 容器都不会响应。这是救命稻草。【参考方案2】:我认为您在来宾/虚拟机中的任何时候都需要使用绑定。
【讨论】:
以上是关于将 Rails 服务器绑定到 0.0.0.0 能给你带来啥?的主要内容,如果未能解决你的问题,请参考以下文章
将 Microsoft Azure Function App 2.0 预览版绑定到 0.0.0.0
如何将 `vue ui` 绑定到另一个 IP? (vue-cli 3)
启动 apache 失败(无法绑定到地址 0.0.0.0:80)