Ruby Sinatra Webservice在localhost上运行:4567但不在IP上运行

foo*_*bar 30 ruby web-services ruby-on-rails webrick sinatra

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

可能是什么问题?

foo*_*bar 49

来自@SudarshanShubakar的评论以下为我工作.

ruby app.rb -o 0.0.0.0


chi*_*chi 20

通过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
Run Code Online (Sandbox Code Playgroud)


小智 10

要设置服务器的主机名或IP地址使用Sinatra的设置 绑定

set :bind, '192.168.103.99'
Run Code Online (Sandbox Code Playgroud)