什么是本地主机,它在哪里定义?

What is localhost and where is it defined?

我刚刚在 Heroku 的推荐下从 thin 更改为 puma。当我使用 puma 服务器启动我的 rails 应用程序时,它会响应: => Booting Puma => Rails 4.2.2 application starting in development on http://localhost:3000 => Run `rails server -h` for more startup options => Ctrl-C to shutdown server Puma 2.11.3 starting... * Min threads: 0, max threads: 16 * Environment: development * Listening on tcp://localhost:3000 但是,如果我在浏览器中转到 http://0.0.0.0:3000,这是我使用瘦服务器的旧本地主机,它不会响应。但是,如果我打开 http://localhost:3000,它就会工作。 localhost 的定义好像变了。

那么,什么是localhost?特别是,它是什么类型的对象,它是如何定义的,我如何看到实际的 ip 地址,为什么 puma 会更改它?

Localhost 是 IPv4 环回 IP 地址 127.0.0.1。它用于代替计算机的主机名。 Localhost 有时可以表示这台计算机。

例如,将安装在系统 运行 上的网络浏览器定向到 HTTP 服务器 http://localhost 将显示本地网站的主页。

这是一篇有趣的维基百科文章

https://en.wikipedia.org/wiki/Localhost

如果您想让 Rails 绑定到不同的 ip,方法是使用 -b 选项。要将其绑定到 0.0.0.0 而不是 Rails-default localhost,您需要 运行 类似于 rails s -b 0.0.0.0

的内容

注意:明确地说,将 -p 3000 选项也放在那里(设置端口)可能不是一个坏主意,即使默认值不太可能改变。有关可用选项的更多信息也可以通过 运行ning rails s -h 找到。