Подтвердить что ты не робот

Почему Ruby on Rails использует http://0.0.0.0:3000 вместо http://localhost: 3000?

Я очень новичок в Ruby on Rails, поэтому, когда я попытался следовать официальному руководству " Начало работы" ruby ​​on rails tutorial, я был немного разочарован, потому что он пошел неправильно очень быстро. В основном он сказал:

... перейдите к http://localhost: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?

4b9b3361

Ответ 1

Localhost означает буквально "ваш локальный хост", обычно обозначаемый 127.0.0.1, и весь трафик на этот адрес маршрутизируется через интерфейс loopback. Если ваш веб-сервер прослушивает подключения на 127.0.0.1, это означает, что он принимает только запросы, поступающие с одного и того же хоста.

0.0.0.0 означает, что Rails прослушивает все интерфейсы, а не только интерфейс loopback.

Ответ 2

0.0.0.0 означает все интерфейсы. Включая 127.0.0.1 a.k.a. localhost.

Ответ 3

На самом деле рельсы имеют разные параметры конфигурации, если они прослушивают что-то конкретное или все интерфейсы.

Ответ 4

Как и все знают, мой браузер Firefox правильно отображает локально размещенный сервер, если я получаю доступ   http://localhost:3000/ но он НЕ отображается, когда я пытаюсь получить доступ   http://0.0.0.0:3000/ как рекомендовано Ruby. Ясно, что в некотором смысле они не эквивалентны.

Я нахожусь в ОС Windows.

Ответ 5

Для тех из нас, кто использует виртуальный сервер Nitrous.io для разработки, я считаю, что мы должны привязываться к 0.0.0.0, так как локального хоста не существует.

Ответ 6

Если вы хотите 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

Ответ 7

Перезагрузка os работает для меня. (На Mac v 10.12)