我在 Windows 7 32 位操作系统上有一个 ruby(使用 sinatra)网络服务。它在端口 4567 上运行。当我使用localhost:4567时它工作正常,但是当我用我机器的本地 IP 替换 localhost 时说,192.168.103.99 :4567它不起作用,并且无法连接。我已经禁用了防火墙,绕过代理并将端口 4567 添加到异常中,仍然没有运气。
可能是什么问题?
我在 Windows 7 32 位操作系统上有一个 ruby(使用 sinatra)网络服务。它在端口 4567 上运行。当我使用localhost:4567时它工作正常,但是当我用我机器的本地 IP 替换 localhost 时说,192.168.103.99 :4567它不起作用,并且无法连接。我已经禁用了防火墙,绕过代理并将端口 4567 添加到异常中,仍然没有运气。
可能是什么问题?
Following worked for me.
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...):是Sinatra 期望'0.0.0.0'
的合法值,它将被正确解释。
因此,一个在所有接口上都可用的最小的、独立的 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