什么是本地主机,它在哪里定义?
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 将显示本地网站的主页。
这是一篇有趣的维基百科文章
如果您想让 Rails 绑定到不同的 ip,方法是使用 -b
选项。要将其绑定到 0.0.0.0
而不是 Rails-default localhost
,您需要 运行 类似于 rails s -b 0.0.0.0
的内容
注意:明确地说,将 -p 3000
选项也放在那里(设置端口)可能不是一个坏主意,即使默认值不太可能改变。有关可用选项的更多信息也可以通过 运行ning rails s -h
找到。
我刚刚在 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 将显示本地网站的主页。
这是一篇有趣的维基百科文章
如果您想让 Rails 绑定到不同的 ip,方法是使用 -b
选项。要将其绑定到 0.0.0.0
而不是 Rails-default localhost
,您需要 运行 类似于 rails s -b 0.0.0.0
注意:明确地说,将 -p 3000
选项也放在那里(设置端口)可能不是一个坏主意,即使默认值不太可能改变。有关可用选项的更多信息也可以通过 运行ning rails s -h
找到。