【问题标题】:Django tutorial: problems accessing development serverDjango 教程:访问开发服务器的问题
【发布时间】:2015-09-16 08:41:21
【问题描述】:

我正在阅读 Django 教程,但在尝试查看我的网页时遇到了问题。当我第一次运行命令python manage.py runserver xxx.xxx.xxx.xxx:8000(将x 替换为我的远程服务器的IP)时,我处于教程的最开始。当我尝试在本地计算机上导航到 http://xxx.xxx.xxx.xxx:8000 时,Chrome 给了我错误 ERR_CONNECTION_REFUSED。我也试过在0.0.0.0:8000 上运行服务器,同样的问题仍然存在。该端口绝对是开放的,并且没有防火墙阻止它 - 当我将我的 IP 和 8000 插入此站点时,它声称它是开放的:http://ping.eu/port-chk/

我在控制台上没有收到来自 Django 方面的错误消息。什么可能导致此错误?我真的不太了解服务器或端口。提前致谢。

我在运行 CentOS 6.4 的虚拟 Linux 服务器上。我的本地机器正在运行 Mac OS 10.9.5

编辑:

当我运行netstat --listen 时,端口 8000 不会显示在本地地址列中,即使我的 Django 开发服务器声称正在运行。有人向我提到这意味着我的应用程序没有在此端口上侦听。这是什么意思,我该如何补救?

编辑:

我可以毫无问题地通过手机的互联网访问该页面。什么给了?

【问题讨论】:

  • 您使用的是哪种虚拟化解决方案?虚拟机如何连接到主机的网络(桥接/路由?)你的 Mac 的 IP 地址是什么,你的虚拟机的 IP 地址是什么?

标签: python linux django centos


【解决方案1】:

如果您在 VM 中运行 Django,但从主机 Mac 访问它,则需要转发端口。查看 Virtualbox/VMWare/whatever 中的设置。

但是请注意,Django 直接在 Mac 上运行得非常好,所以如果您只是在学习,安装它可能会更简单。

【讨论】:

  • 我对服务器和端口一无所知-转发端口是什么意思?我该怎么做呢?谢谢。
  • 我很想在我的 Mac 上使用它,但是由于我正在为我的工作学习 Django,最终我将不得不实际使用这个服务器来托管我的应用程序,所以我认为它会更好学习它。
  • 这取决于您使用的虚拟化软件。在 virtualbox 上,例如,它位于 Network 设置下,其中有一个标记为 Port forwarding 的按钮。
【解决方案2】:

不要不发IP,runserver会在启动时告诉你可以连接到哪里。

由于您是从 VM 启动它,因此您可以提供 IP。 确保系统级路由正常。

将您的主机本地 IP 添加到 ALLOWED_HOSTS 设置。

【讨论】:

  • 如果我只使用 runserver 而不指定 IP 或端口,它将在无法访问的 127.0.0.1 上运行,因为我的应用程序位于 VM 上,并且我试图从本地浏览器查看应用程序.
  • 在哪里可以找到该设置?
  • 在 settings.py 文件中。还将VM设置设置为转发端口:)
  • 我认为我的问题一定是端口转发 - 我不知道如何做到这一点或它的真正含义。我可以在我的 centos 服务器上的哪个位置完成此操作?我在转发什么?谷歌搜索没有找到好的帮助。
猜你喜欢
  • 2016-11-25
  • 1970-01-01
  • 2015-12-15
  • 1970-01-01
  • 1970-01-01
  • 2014-07-06
  • 1970-01-01
  • 2015-10-14
  • 1970-01-01
相关资源
最近更新 更多