当前位置:  开发笔记 > 编程语言 > 正文

如何从外部访问本地Django Web服务器

如何解决《如何从外部访问本地DjangoWeb服务器》经验,为你挑选了3个好方法。

我按照这里的说明使用内置的webserver运行Django,并且能够使用它成功运行它python manage.py runserver.如果我从网络服务器本地访问127.0.0.1:port,我会得到Django页面,表明它有效.

我意识到Django网络服务器不是一个生产服务器,但是对于我来说,测试目的对于能够从外部世界访问它很重要 - 即不是来自服务器上的Web浏览器,而是来自不同的计算机.

我试过了:

http://mywebserver:port_django_runs_on

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

http://myipaddress:port_django_runs_on 

这也没用.

Web服务器正在运行,因此必须可以从外部访问,我只是不确定如何.我正在使用Apache运行Linux,尽管我没有使用Apache配置Django.

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



1> Felix Kling..:

您必须运行开发服务器,以便它侦听网络接口.

例如

python manage.py runserver 0.0.0.0:8000

侦听端口8000 上的每个接口.

使用IP或主机名访问Web服务器无关紧要.我猜你还在自己的局域网中.
如果您确实想从外部访问服务器,则还必须配置路由器以将端口转发8000到您的服务器.


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

假设您可以从外部成功访问Apache服务器,您也可以尝试这样做:

停止Apache服务器,以便该端口80是免费的.

使用启动开发服务器 sudo python manage.py runserver 0.0.0.0:80



2> Bonfix Ngeti..:

我必须将此行添加到settings.py以使其工作(否则从另一台计算机访问时显示错误)

ALLOWED_HOSTS = ['*']

然后运行服务器:

python manage.py runserver 0.0.0.0:9595

还要确保防火墙允许连接到该端口



3> MattH..:

选择一个或多个来自:

您的应用程序未成功收听预期的IP:PORT

因为您尚未成功配置它

因为用户没有权限

您的应用程序正在成功侦听预期的IP:PORT,但客户端无法访问它,因为

服务器本地iptables阻止它.

防火墙会阻止它.

因此,您可以通过lsof -i在计算机上以root身份运行来查看应用程序是否正在成功侦听,并查找python具有您指定的相应端口的条目.

非root用户通常无法绑定到端口<1024.

您需要iptables -nvL查看是否存在阻止访问您尝试绑定应用程序的ip:port的规则.

如果有上游防火墙并且您对此不太了解,则需要与网络管理员联系.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有