我现在使用Vagrant进行多个项目的每个项目安装,这意味着我有多个框。每个项目一个(或用于生产环境)
当我想访问我的第一个Vagrantbox时,我通过http://sitea.com:8080
访问它。我的第二个Vagrantbox应该收听1337
(我在此尝试了多个端口),但是当我致电http://siteb.com:1337
时,我在所有浏览器中都收到错误(Chrome中为ERR_CONNECTION_REFUSED
)。
然而,当我调用我的第二个网站http://siteb.com
时,它可以毫无问题地工作。看来我的第二个Vagrantbox只是没有收听端口并使用默认端口。但那为什么呢?
第一个框(仅适用于端口)
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "puppetlabs/debian-7.8-64-puppet"
config.vm.provision :shell, path: "vagrant_ressources/bootstrap.sh"
config.vm.network :forwarded_port, guest: 80, host: 8080
config.vm.network "private_network", ip: "192.168.50.4"
config.vm.synced_folder ".", "/var/www", type: "nfs"
end
第二个框(仅适用于没有端口)
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "puppetlabs/debian-7.8-64-puppet"
config.vm.provision :shell, path: "vagrant_ressources/bootstrap.sh"
config.vm.network :forwarded_port, guest: 80, host: 1337
config.vm.network "private_network", ip: "192.168.50.5"
config.vm.synced_folder ".", "/var/www", type: "nfs"
end
两者都具有相同的vhost配置,我的hosts文件看起来像这样
# Vagrant
192.168.50.4 sitea.com
192.168.50.5 siteb.com
答案 0 :(得分:0)
使用Vagrant
端口转发时,您通常会访问localhost
,因为转发的端口可在您的主机上使用。像这样:
http://localhost:8080 -> should deliver the website siteA.com
http://localhost:1337 -> should deliver the website siteB.com
如果您能够访问http://siteB[:80]
,则表示siteB的DNS条目指向192.168.50.5
,即该框的专用网络IP。
检查:
getent hosts | grep siteB\.com
我打赌它会给你192.168.50.5
。