无法使用Vagrant转发端口访问主机上的Sinatra应用程序

时间:2014-01-21 06:35:26

标签: ruby http ubuntu sinatra vagrant

使用ruby app.rbforeman start启动我的Sinatra应用程序后,我无法使用localhost和主机上的相应端口访问我的应用程序。我也可以从来宾机器的shell中curl到应用程序,而在主机上,curl请求失败。据我所知,客户机上不应该有防火墙,因为我正在使用Vagrant Ubuntu映像。

我的Vagrantfile如下:

Vagrant.configure('2') do |config|
  config.vm.box = 'precise32'
  config.vm.box_url = 'http://files.vagrantup.com/precise32.box'
  config.vm.network :forwarded_port, guest: 4567, host: 4567
end

1 个答案:

答案 0 :(得分:16)

默认情况下,在开发模式下运行Sinatra only listens to localhost,而不是0.0.0.0(此更改是由security considerations生成的)。

要允许来自任何界面的请求,请将set :bind, '0.0.0.0'添加到您的应用文件,或使用-o选项启动您的应用,例如ruby myapp.rb -o 0.0.0.0

您可以将此设置为分配给访客的实际地址,但我不知道是否值得。