Ruby on rails 如何访问来宾';来自主机的端口3000是什么?

Ruby on rails 如何访问来宾';来自主机的端口3000是什么?,ruby-on-rails,vagrant,virtualbox,portforwarding,vagrantfile,Ruby On Rails,Vagrant,Virtualbox,Portforwarding,Vagrantfile,这是我的流浪汉档案: # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure(2) do |config| config.vm.box = "ubuntu-14.04-x64" # Sync'd folders config.vm.synced_folder ".", "/vagrant", disabled: true config.vm.synced_folder "~/work", "/hom

这是我的
流浪汉档案

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
config.vm.box = "ubuntu-14.04-x64"

# Sync'd folders
config.vm.synced_folder ".",           "/vagrant",  disabled: true
config.vm.synced_folder "~/work",      "/home/vagrant/work", create: true
config.vm.synced_folder "~/apt-archives", "/var/cache/apt/archives/", create: true

# Ubuntu VM
config.vm.define "ubuntu" do |ubuntu|
ubuntu.vm.provision "shell", path: "provision.sh", privileged: false
ubuntu.vm.network "forwarded_port", guest: 3000, host: 8080   # http
ubuntu.vm.network "private_network", ip: "10.20.30.100"
ubuntu.vm.hostname = "ubuntu"

# VirtualBox Specific Stuff
# https://www.virtualbox.org/manual/ch08.html
config.vm.provider "virtualbox" do |vb|

  # Set more RAM
  vb.customize ["modifyvm", :id, "--memory", "2048"]

  # More CPU Cores
  vb.customize ["modifyvm", :id, "--cpus", "2"]

end # End config.vm.provider virtualbox
end # End config.vm.define ubuntu
end
例如,当我使用端口3000运行rails应用程序时,我将从来宾计算机访问
http://localhost:3000

但我正试图通过主机的浏览器访问该应用程序

以下各项均无效:

http://10.20.30.100:8080

https://10.20.30.100:8080

http://10.20.30.100:3000

https://10.20.30.100:3000


主机上的浏览器显示:错误连接被拒绝

出于安全原因,Rails 4.2在开发模式下限制远程访问。这是通过将服务器绑定到“localhost”而不是“0.0.0.0”来完成的

要访问在VM上工作的Rails(例如Vagrant创建的VM),需要将默认Rails IP绑定更改回“0.0.0.0”

请参见下面的答案,建议使用多种不同的方法

其想法是通过强制执行以下命令来运行Rails:

rails s -b 0.0.0.0
或者将绑定硬编码到Rails应用程序中(我发现不太理想):

就我个人而言,我可能会同意使用Procfile的建议:

# Procfile in Rails application root
web:     bundle exec rails s -b 0.0.0.0

我相信,这将允许更好地实现部署同步。

出于安全原因,Rails 4.2在开发模式下限制远程访问。这是通过将服务器绑定到“localhost”而不是“0.0.0.0”来完成的

要访问在VM上工作的Rails(例如Vagrant创建的VM),需要将默认Rails IP绑定更改回“0.0.0.0”

请参见下面的答案,建议使用多种不同的方法

其想法是通过强制执行以下命令来运行Rails:

rails s -b 0.0.0.0
或者将绑定硬编码到Rails应用程序中(我发现不太理想):

就我个人而言,我可能会同意使用Procfile的建议:

# Procfile in Rails application root
web:     bundle exec rails s -b 0.0.0.0

我相信,这将允许更好地实现部署同步。

出于安全原因,Rails 4.2在开发模式下限制远程访问。这是通过将服务器绑定到“localhost”而不是“0.0.0.0”来完成的

要访问在VM上工作的Rails(例如Vagrant创建的VM),需要将默认Rails IP绑定更改回“0.0.0.0”

请参见下面的答案,建议使用多种不同的方法

其想法是通过强制执行以下命令来运行Rails:

rails s -b 0.0.0.0
或者将绑定硬编码到Rails应用程序中(我发现不太理想):

就我个人而言,我可能会同意使用Procfile的建议:

# Procfile in Rails application root
web:     bundle exec rails s -b 0.0.0.0

我相信,这将允许更好地实现部署同步。

出于安全原因,Rails 4.2在开发模式下限制远程访问。这是通过将服务器绑定到“localhost”而不是“0.0.0.0”来完成的

要访问在VM上工作的Rails(例如Vagrant创建的VM),需要将默认Rails IP绑定更改回“0.0.0.0”

请参见下面的答案,建议使用多种不同的方法

其想法是通过强制执行以下命令来运行Rails:

rails s -b 0.0.0.0
或者将绑定硬编码到Rails应用程序中(我发现不太理想):

就我个人而言,我可能会同意使用Procfile的建议:

# Procfile in Rails application root
web:     bundle exec rails s -b 0.0.0.0

我相信,这将使部署同步性更容易。

您是否尝试过此感谢,但对我无效。您是否尝试过此感谢,但对我无效。您是否尝试过此感谢,但对我无效。您是否尝试过此感谢,但对我无效。您是否尝试过此感谢,但对我无效。