为什么Ruby on Rails的使用http://0.0.0.0:3000不是HTTP://本地主

2019-07-19 16:18发布

我是很新的Ruby on Rails的 ,所以当我试图按照官方的“ 入门 ” Ruby on Rails的教程,我有点失望,因为它很快就出了问题。 基本上,它说:

...导航到HTTP://本地主机:3000 。 您应该看到Rails的默认信息页面。

但是,当我按照指示,我得到

=> Rails 2.3.4 application starting on http://0.0.0.0:3000

尝试两个地址后,我知道他们指向同样的事情,但为什么Ruby on Rails的使用可有人向我解释http://0.0.0.0:3000而不是http://localhost:3000

有没有一种方法总是有WEBbrick服务器使用localhost?

Answer 1:

本地主机意味着毫不夸张地“本地主机”,通常由127.0.0.1标识的所有流量那个地址是通过环回接口路由。 如果您的Web服务器,侦听127.0.0.1的连接,这意味着它仅接受来自同一主机来的请求。

0.0.0.0意味着Rails正在侦听所有接口,不仅是环回接口。



Answer 2:

0.0.0.0意味着所有接口。 包括127.0.0.1又名localhost



Answer 3:

如果你想localhost ,一个快速的方法是指定绑定rails s -blocalhost (和与港口-pNNNN ,更多的选择与rails s --help )。

我的服务器启动默认运行localhost的被调查的原因。 结果lvh.me停止工作,阻止我指定的子域(如: www.lvh.me:3000 )。

我“解决”这个指定绑定:

rails s -b0.0.0.0 # will work with lvh.me


Answer 4:

只是让大家都知道,如果我访问我的Firefox浏览器正确显示本地托管服务器http://localhost:3000/ ,但是当我试图访问它不会显示http://0.0.0.0:3000/所推荐的红宝石。 显然,在某种意义上说,他们是不等价的。

我在Windows BTW。



Answer 5:

Rails的4.1警告消息。

仅供参考,on Rails的4.1,你会得到看起来像这样在启动的警告消息:

=> Run `rails server -h` for more startup options
=> Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)

这表明,结合0.0.0.0不建议,而是你应该使用127.0.0.1

在Rails 4.2+ Rails服务器默认绑定到localhost ,而不是0.0.0.0 ,甚至127.0.0.1



Answer 6:

其实Rails有样,如果它监听到一些具体的事情或所有接口不同的配置选项。



Answer 7:

对于我们这些使用Nitrous.io虚拟服务器环境不受发展,我相信我们有绑定到0.0.0.0,因为没有本地主机本身。



Answer 8:

重新启动操作系统为我工作。 (在Mac v 10.12)



文章来源: Why does Ruby on Rails use http://0.0.0.0:3000 instead of http://localhost:3000?