Веб-сервис Ruby Sinatra работает на localhost: 4567, но не на IP
У меня есть веб-сервис ruby(с использованием sinatra) на 32-битной ОС windows 7. Он работает на порту 4567. Его работа нормально, когда я использую localhost: 4567 , но когда я заменяю localhost на локальный ip моей машины, говорят, 192.168.103.99:4567 он не работает и не может подключиться. Я уже отключил брандмауэр, байпас прокси и добавил порт 4567 в исключение, все еще не везет.
В чем может быть проблема ?
4 ответа:
При использовании встроенного сервера через проверку
run! if app_file == $0
, документ Синатры объясняет, чтоset :bind, '0.0.0.0'
требуется сделать интерфейс доступным вне уровняlocalhost
.Не требуется использовать пользовательский IP-адрес или обратный DNS (mydomain.com...):
Таким образом, минимальное автономное приложение Sinatra, доступное на всех интерфейсах, а не только на'0.0.0.0'
- это законное значение , ожидаемое Синатрой, которое будет интерпретировано правильно.localhost
, было бы быть:require 'sinatra/base' class MyApp < Sinatra::Base set :bind, '0.0.0.0' get '/' do 'Hello World' end run! if app_file == $0 end
Чтобы задать имя хоста сервера или IP-адрес, используйте параметр sinatra bind like
set :bind, '192.168.103.99'