从主机浏览器访问VirtualBox / Vagrant机器上的django服务器?

时间:2016-10-04 11:47:34

标签: python django vagrant

我在运行“bento / centos-6.7-i386”的VirtualBox / Vagrant机器上有一个Django Web服务器。 我按照本指南创建了一个Django项目:https://docs.djangoproject.com/en/dev/intro/tutorial01/

我的客户机内部有http://127.0.0.1:8000/运行的Web服务器。这是我第一次运行Django Web服务器。它应该是一个hello world app。

如何从主机浏览器访问此Web应用程序? 我尝试在vagrant文​​件中添加此行 - config.vm.network "private_network", ip: "55.55.55.5",然后尝试按照其他人之前讨论中解释的解决方案中的1个运行python manage.py runserver 0.0.0.0:80命令,但我无法从主机访问该站点浏览器使用55.55.55.5:8000。

如何从浏览器访问网络服务器?

以下是我的Vagrant文​​件:

# -- mode: ruby -- 
# vi: set ft=ruby : 
VAGRANTFILE_API_VERSION = "2" 
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 
config.vm.box = "bento/centos-6.7-i386" 
config.vm.network "forwarded_port", guest: 8000, host: 8000 
config.vm.network "forwarded_port", guest: 8080, host: 8080 
config.vm.network "forwarded_port", guest: 5000, host: 5000 
config.vm.network "private_network", ip: "10.10.10.10" 
end

3 个答案:

答案 0 :(得分:3)

您将guest虚拟机上的端口8000转发到主机上的8000。尝试:

python manage.py runserver 0:8000

然后在浏览器中访问:http://localhost:8000

如果您最终想要运行Web服务器进行测试,那么这将使端口80保持空闲状态。祝你好运!

答案 1 :(得分:2)

如果您在Vagrantfile中使用以下线路进行端口转发

config.vm.network "forwarded_port", guest: 8000, host: 8000

这意味着您将能够在端口8000的主机浏览器中访问在端口8000上运行的来宾应用程序。因此,您可以通过在主机中点击http://127.0.0.1:8000http://localhost:8000来访问。

为什么要强制您的应用在0.0.0.0上投放? 。 它不是必需的,或者如果您想使用访客IP地址访问,那么使用端口转发是没有意义的。

如果您在配置后在Vagrantfile更改了此配置,则不要忘记重新加载

vagrant reload

答案 2 :(得分:0)

我在Django和端口转发内部VB中遇到问题。

Django不允许外部主机访问它。

因此将启动命令更改为 python3 ./manage.py运行服务器0.0.0.0:8000

一切正常