python - 如何从外部访问本地 Django 网络服务器

我按照指示 here使用内置的网络服务器运行 Django,并且能够使用 python manage.py runserver 成功运行它。如果我从网络服务器本地访问 127.0.0.1:port,我会得到 Django 页面,表明它工作正常。

我意识到 Django 网络服务器不是生产服务器,但对于我来说,能够从外部世界访问它很重要——即不是从服务器上的网络浏览器,而是从另一台计算机。

我试过了:

http://mywebserver:port_django_runs_on

但它不起作用。我也尝试使用 IP 代替(基于 ifconfig)来访问:

http://myipaddress:port_django_runs_on 

这也不起作用。

网络服务器正在运行,所以它必须可以从外部访问,我只是不确定如何访问。我正在用 Apache 运行 Linux,虽然我没有用 Apache 配置 Django。

关于如何做到这一点的任何想法?

最佳答案

您必须运行开发服务器,使其 listens on the interface到您的网络。

例如

python manage.py runserver 0.0.0.0:8000

监听端口 8000 上的每个接口(interface)。

无论您使用 IP 还是主机名访问网络服务器都没有关系。我猜你还在你自己的局域网里。
如果您真的想从外部访问服务器,您还必须将路由器配置为转发端口,例如8000 到您的服务器。


检查服务器上的防火墙是否允许到正在使用的端口的传入连接!

假设你可以从外部成功访问你的Apache服务器,你也可以试试这个:

  • 停止 Apache 服务器,使端口 80 空闲。
  • 使用 sudo python manage.py runserver 0.0.0.0:80
  • 启动开发服务器

https://stackoverflow.com/questions/2260727/

相关文章:

python - 检查一个单词是否在 Python 中的字符串中

linux - 如何在 vi 编辑器中删除选定的文本

linux - 如何在 shell 变量中获取网页的内容?

python - 如何在 Django 中过滤 DateTimeField 的日期?

linux - 如何管道或重定向 curl -v 的输出?

linux - 如何在不打开 Linux 的情况下找到所有串行设备(ttyS、ttyUSB、..)?

python - 在文件之间使用全局变量?

linux - 符号链接(symbolic link) : find all files that

android - Eclipse Android 插件 -- libncurses.so.5

python - Django 的嵌套 Meta 类是如何工作的?