我在Windows 7 32位操作系统上有一个ruby(使用sinatra)webservice。它在4567端口上运行。 当我使用 localhost:4567 时它工作正常,但是当我用我的机器的本地ip替换localhost时, 192.168.103.99:4567 它不起作用,并且失败连接。 我已经禁用了防火墙,旁路代理并将端口4567添加到异常中,但仍然没有运气。
可能是什么问题?
答案 0 :(得分:48)
@SudarshanShubakar的评论为我工作。
ruby app.rb -o 0.0.0.0
答案 1 :(得分:18)
通过run! if app_file == $0
检查使用内置服务器时,Sinatra's doc说明需要set :bind, '0.0.0.0'
才能使接口在localhost
图层之外可用。
不需要使用自定义IP地址或反向DNS(mydomain.com ...):'0.0.0.0'
是合法值expected by 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
答案 2 :(得分:10)
设置服务器主机名或IP地址使用sinatra setting bind ,如
set :bind, '192.168.103.99'
答案 3 :(得分:1)
此
require 'rubygems'
require 'sinatra'
require "dbi"
set :bind, '192.168.200.185'
get '/' do
'hello word'
end