36

我在 Windows 7 32 位操作系统上有一个 ruby​​(使用 sinatra)网络服务。它在端口 4567 上运行。当我使用localhost:4567时它工作正常,但是当我用我机器的本地 IP 替换 localhost 时说,192.168.103.99 :4567它不起作用,并且无法连接。我已经禁用了防火墙,绕过代理并将端口 4567 添加到异常中,仍然没有运气。

可能是什么问题?

4

4 回答 4

56

Following worked for me.

ruby app.rb -o 0.0.0.0

于 2014-01-02T09:37:44.127 回答
24

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
于 2014-04-12T10:25:47.547 回答
10

要设置服务器主机名或 IP 地址,请使用sinatra 设置 绑定,例如

set :bind, '192.168.103.99'
于 2013-05-30T11:24:36.737 回答
1

这个

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

set :bind, '192.168.200.185'
get '/' do
    'hello word'
end
于 2014-04-11T22:51:50.260 回答