Ответ 1
Из комментария @SudarshanShubakar после работы для меня.
ruby app.rb -o 0.0.0.0
У меня есть рубин (используя синатра) webservice на Windows 7 32-битной ОС. Он работает на порте 4567. Он работает отлично, когда я использую localhost: 4567, но когда я заменяю localhost локальным ip моего компьютера, скажите: 192.168.103.99:4567 он не работает и не работает для подключения. Я уже отключил брандмауэр, прокси-сервер и добавил порт 4567 в исключение, но все равно не повезло.
В чем может быть проблема?
Из комментария @SudarshanShubakar после работы для меня.
ruby app.rb -o 0.0.0.0
При использовании встроенного сервера с помощью проверки run! if app_file == $0
Sinatra doc объясняется, что set :bind, '0.0.0.0'
требуется, чтобы сделать интерфейс доступным вне слоя localhost
.
Не требуется использовать пользовательский IP-адрес или обратный DNS (mydomain.com...): '0.0.0.0'
является допустимым значением ожидаемым Sinatra, который будет интерпретироваться правильно.
Поэтому минимальное самодостаточное приложение Sinatra, доступное на всех интерфейсах, а не только 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, как
set :bind, '192.168.103.99'
это
require 'rubygems'
require 'sinatra'
require "dbi"
set :bind, '192.168.200.185'
get '/' do
'hello word'
end