web-dev-qa-db-fra.com

Ruby Sinatra Webservice fonctionnant sur localhost: 4567 mais pas sur IP

J'ai un service Web Ruby (utilisant sinatra) sur un système d'exploitation Windows 7 32 bits. Il fonctionne sur le port 4567. Il fonctionne très bien lorsque j'utilise localhost: 4567 mais quand je remplace localhost par l'adresse IP locale de ma machine, dites 192.168.103.99:4567 il ne fonctionne pas ne fonctionne pas et ne parvient pas à se connecter. J'ai déjà désactivé le pare-feu, le proxy de contournement et ajouté le port 4567 à l'exception, toujours pas de chance.

Quel pourrait être le problème?

30
foobar

D'après le commentaire de @SudarshanShubakar, cela a fonctionné pour moi.

Ruby app.rb -o 0.0.0.0

49
foobar

Lorsque vous utilisez le serveur intégré via le run! if app_file == $0 check, doc de Sinatra explique que set :bind, '0.0.0.0' est requis pour rendre l'interface disponible en dehors de la couche localhost.

Il n'est pas nécessaire d'utiliser une adresse IP personnalisée ou un DNS inversé (mydomain.com…): '0.0.0.0' est la valeur légitime attendue par Sinatra , qui sera interprétée correctement.

Par conséquent, une application Sinatra minimale et autonome mise à disposition sur toutes les interfaces, pas seulement localhost, serait:

require 'sinatra/base'

class MyApp < Sinatra::Base
  set :bind, '0.0.0.0'

  get '/' do
    'Hello World'
  end

  run! if app_file == $0
end
18
chikamichi

Pour définir le nom d'hôte ou l'adresse IP du serveur, utilisez paramètre sinatra bind like

set :bind, '192.168.103.99'
10
unused

ce

require 'rubygems'
require 'sinatra'
require "dbi"

set :bind, '192.168.200.185'
get '/' do
    'hello Word'
end
1
Erick Guardado