我是很新的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?
本地主机意味着毫不夸张地“本地主机”,通常由127.0.0.1标识的所有流量那个地址是通过环回接口路由。 如果您的Web服务器,侦听127.0.0.1的连接,这意味着它仅接受来自同一主机来的请求。
0.0.0.0意味着Rails正在侦听所有接口,不仅是环回接口。
0.0.0.0
意味着所有接口。 包括127.0.0.1
又名localhost
。
如果你想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
只是让大家都知道,如果我访问我的Firefox浏览器正确显示本地托管服务器http://localhost:3000/
,但是当我试图访问它不会显示http://0.0.0.0:3000/
所推荐的红宝石。 显然,在某种意义上说,他们是不等价的。
我在Windows BTW。
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
。
其实Rails有样,如果它监听到一些具体的事情或所有接口不同的配置选项。
对于我们这些使用Nitrous.io虚拟服务器环境不受发展,我相信我们有绑定到0.0.0.0,因为没有本地主机本身。
重新启动操作系统为我工作。 (在Mac v 10.12)
文章来源: Why does Ruby on Rails use http://0.0.0.0:3000 instead of http://localhost:3000?