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?
D'après le commentaire de @SudarshanShubakar, cela a fonctionné pour moi.
Ruby app.rb -o 0.0.0.0
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
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'
ce
require 'rubygems'
require 'sinatra'
require "dbi"
set :bind, '192.168.200.185'
get '/' do
'hello Word'
end