Я пытаюсь запустить приложение ror в доме друга, и приложение недоступно извне. Вот что мы пробовали.Нет доступа к серверу рельсов, работающему за брандмауэром
Приложение было создано с
$ rails new <application name>
и начал с
$ rails server
запуска сервера разработки и доступен на http://localhost:3000
Следующая вещь, которую мы активировали переадресацию портов на маршрутизаторе он использует для подключения к Интернету: мы сопоставили внешний порт 3000 с портом 3000 на внутреннем хосте, на котором запущен сервер rails нин. Когда я пытаюсь открыть страницу извне (с помощью firefox), я получаю страницу с ошибкой: не удается подключиться к хосту, хост может быть недоступен, попробуйте подключиться позже.
Вещи, которые мы попробовали:
- Изменен порт пересылки 80 -> 80
- установлен и запущен Apache: по умолчанию Apache страницы достижима.
- Остановил Apache и запустил сервер rails на порту 80 (с sudo, иначе он не может использовать порт 80): сервер rails недоступен.
Я также проверил брандмауэр машины, работающей на сервере рельсов. ОС - ubuntu 12.04: брандмауэр (не менее ufw) неактивен. Я также могу подключиться к этой машине, используя порт 22/ssh.
Сведение:
- рельсы сервер доступен на порту 3000 на локальном хосте
- перенаправление портов работает на портах 22 и 80, и оба сервера SSH и сервера Apache достижимы сервер
- Рельсы не доступен на обоих портах 80 и 3000 снаружи
Единственное, что я могу придумать, это то, что рельсы могут иметь механизм, похожий на ALLOWED_HOSTS от Django, и что он ref использует внешние запросы, потому что они предназначены для другого хоста, чем localhost. Тем не менее, я ничего не нашел по этой теме. Кроме того, файлы журнала приложения не показывают попыток подключения, которые был отклонен сервером rails.
Итак, у нас нет идей. Что мы должны проверить дальше?
Мы действительно используем рельсы 4.2 и, следуя вашим указаниям, мы решили проблему. +1 – Giorgio