【问题标题】:Access django server on VirtualBox/Vagrant machine from host browser?从主机浏览器访问 VirtualBox/Vagrant 机器上的 django 服务器?
【发布时间】:2016-10-04 11:47:33
【问题描述】:

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

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

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

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

以下是我的流浪文件:

# -- 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

【问题讨论】:

  • 尝试python manage.py runserver 0.0.0.0:8000并访问主机的8000端口。
  • 如果您确实运行了 python manage.py runserver 0.0.0.0:80,请确保添加一行 config.vm.network "forwarded_port", guest: 80, host: 8800,以便将端口 80 从您的 VM(您运行服务器的位置)转发到主机端口 8800,以便您可以访问localhost:8800 来自您的主机 Web 浏览器(有时您需要将 localhost 更改为 127.0.0.1,具体取决于浏览器和配置)

标签: python django vagrant


【解决方案1】:

您将客户机上的 8000 端口转发到主机上的 8000。试试:

python manage.py runserver 0:8000

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

如果您最终还想运行 Web 服务器进行测试,这将使端口 80 空闲。祝你好运!

【讨论】:

    【解决方案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
    

    【讨论】:

    • 感谢也为我工作。但必须在 admin.py 中将 IP 添加到允许的主机列表中
    【解决方案3】:

    我遇到了 Django 和端口转发内幕 VB 的问题。

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

    所以把启动命令改成 python3 ./manage.py 运行服务器 0.0.0.0:8000

    一切正常

    【讨论】:

      猜你喜欢
      • 2016-07-02
      • 2015-12-24
      • 2016-01-28
      • 1970-01-01
      • 2013-11-24
      • 2016-08-25
      • 1970-01-01
      • 2015-02-20
      • 2015-03-26
      相关资源
      最近更新 更多