我有一个运行在 Windows 7 32位操作系统上的ruby(使用sinatra)Web服务,它运行在4567端口。 当我使用localhost: 4567时,它可以正常工作。但是,当我将localhost替换为我的机器的本地IP地址,如192.168.103.99:4567时,它无法工作并且连接失败。 我已经禁用了防火墙,绕过代理并将端口4567添加到异常列表中,但仍然没有成功。可能出了什么问题?
ruby app.rb -o 0.0.0.0
当使用内置服务器通过run! if app_file == $0
检查时,Sinatra文档解释说需要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
require 'rubygems'
require 'sinatra'
require "dbi"
set :bind, '192.168.200.185'
get '/' do
'hello word'
end