我在运行“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
答案 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:8000
或http://localhost:8000
来访问。
为什么要强制您的应用在0.0.0.0
上投放? 。
它不是必需的,或者如果您想使用访客IP地址访问,那么使用端口转发是没有意义的。
如果您在配置后在Vagrantfile
更改了此配置,则不要忘记重新加载
vagrant reload
答案 2 :(得分:0)
我在Django和端口转发内部VB中遇到问题。
Django不允许外部主机访问它。
因此将启动命令更改为 python3 ./manage.py运行服务器0.0.0.0:8000
一切正常