我有一个可编译的弹簧应用程序/在vagrant上运行并侦听localhost:8080
(在vagrant中)。
这是我的 Vagrantfile :
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.network :forwarded_port, guest: 80, host: 9000, host_ip: "127.0.0.1"
config.vm.provision :shell, path: "bootstrap.sh"
end
现在我想通过localhost:9000
从主机访问我的spring-application。
无论如何forwarded_port
行没有用,我真的不知道为什么?
我的 Vagrantfile 需要更改哪些内容?
SOLUTION:
下面的Vagrantfile
对我有用。
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.provision :shell, path: "bootstrap.sh"
config.vm.provider "virtualbox" do |v|
v.destroy_unused_network_interfaces = true
v.memory = 2048
v.cpus = 4
end
end
答案 0 :(得分:2)
它不起作用,因为应用正在监听localhost
。
让应用程序在常规界面上进行侦听。如果它不是Vagrant界面,您可能还需要添加guest_ip
。
config.vm.network :forwarded_port, guest: 80, guest_ip: "xxx.xxx.xxx.xxx", host: 9000, host_ip: "127.0.0.1
答案 1 :(得分:0)
如果您在VM中运行的spring应用程序确实正在侦听其本地端口8080,并且您希望从主机访问该应用程序为http://localhost:9000/,则Vagrantfile中的行应为:
config.vm.network :forwarded_port, guest: 8080, host: 9000
即。你有一个拼写错误指定客人端口80而不是8080。
您可能不需要指定任何其他参数,例如host_ip或guest_ip。