我正在使用Vagrant来管理Ubuntu实例以测试Web应用程序。我在通过https设置登录页面时遇到问题。由于应用程序使用的是Apache2 + php5 + mysql。我有这样的设置端口转发来从主机访问应用程序。
config.vm.network :forwarded_port, guest: 80, host: 8080
当我尝试使用http://localhost:8080
访问访客时,它会重定向到https://localhost:8080
哪个接缝合理,但8080端口转发到http:80访客端口而不是https:43
所以网址https://localhost:8080
是半个谎言。我不知道如何将https端口转发到访客https端口,但我想知道https://localhost:8080
重定向将会发生什么,因为这不是有效的url应该是(我认为),如https://localhost:4343
,如果https:4343转发给访客:43。但是应用程序不知道端口,它只是用http
https
(原谅我的胡言乱语)
如何设置Vagrant网络设置以访问来宾Apache http:80和https:43端口。我是否可以为guest实例分配静态IP并使用它。
问候
使用:
Vagrant版本1.1.5
Ubuntu precise64.box
答案 0 :(得分:1)
对于您的用例,默认网络模式 - NAT不是一个好选择,因为您有多个端口(至少80和443)要转发。
我建议使用桥接模式,以便访客看起来像是LAN中的物理主机,并且您将能够使用其LAN IP访问HTTP / HTTPS。您不需要进行端口转发(实际上您无法在VirtualBox中进行桥接模式的端口转发)。
要使用桥接模式(公共网络),在Vagrantfile
将config.vm.network :public_network
添加到Vagrant.configure
块中并执行vagrant reload
,它应该可以正常运行。使用ifconfig -a
进行检查,将为桥接添加第二个界面。
参考:http://docs.vagrantup.com/v2/networking/public_network.html