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

我知道Django web服务器不是一个生产服务器,但是为了测试目的,能够从外部世界访问它是很重要的——也就是说,不是从服务器上的web浏览器,而是从另一台计算机。

我试着:

http://mywebserver:port_django_runs_on

但这并没有起作用。我还尝试使用IP代替(基于ifconfig)访问:

http://myipaddress:port_django_runs_on 

这也没有用。

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

有什么办法吗?


当前回答

适用于AWS用户。

我必须使用以下步骤才能到达那里。

1)确保在sudo级别安装pip和django

Sudo apt-get install python-pip Sudo PIP安装django

2)确保安全组入局规则包括端口80上的http (0.0.0.0/0)

通过AWS控制台配置

3)在ALLOWED_HOSTS中添加公网IP和DNS

ALLOWED_HOSTS是一个列表对象,可以在settings.py中找到 ALLOWED_HOSTS = ["75.254.65.19","ec2-54-528-27-21.compute-1.amazonaws.com"]

4)在80端口上使用sudo启动开发服务器

Sudo python manage.py runserver 0:80

站点现在可在以下任何一个(不需要:80,因为这是默认的http):

[公共DNS]即ec2-54-528-27-21.compute-1.amazonaws.com [公共IP]即75.254.65.19

其他回答

打开终端 类型:ifconfig 查看ifconfig命令执行结果 使用inet IP ..应该是这样的。192.168.1.121或类似的192.168.x.x。

现在像往常一样运行服务器,但这次指定inet IP Python3 manage.py runserver 192.168.x. pyX:8000(用inet替换X) 也 在settings.py Allowed_hosts = ['*']

适用于AWS用户。

我必须使用以下步骤才能到达那里。

1)确保在sudo级别安装pip和django

Sudo apt-get install python-pip Sudo PIP安装django

2)确保安全组入局规则包括端口80上的http (0.0.0.0/0)

通过AWS控制台配置

3)在ALLOWED_HOSTS中添加公网IP和DNS

ALLOWED_HOSTS是一个列表对象,可以在settings.py中找到 ALLOWED_HOSTS = ["75.254.65.19","ec2-54-528-27-21.compute-1.amazonaws.com"]

4)在80端口上使用sudo启动开发服务器

Sudo python manage.py runserver 0:80

站点现在可在以下任何一个(不需要:80,因为这是默认的http):

[公共DNS]即ec2-54-528-27-21.compute-1.amazonaws.com [公共IP]即75.254.65.19

更新2020 试试这个方法

python manage.py runserver yourIp:8000

ALLOWED_HOSTS = ["*"]

从以下选项中选择一个或多个:

您的应用程序没有成功地侦听预期的IP:PORT 因为您没有成功地配置它 因为用户没有权限 您的应用程序成功地侦听了预期的IP:PORT,但客户端无法到达它,因为 服务器本地iptables可以阻止它。 防火墙阻止了它。

因此,您可以在机器上以root身份运行lsof -i,并使用指定的相应端口查找python条目,从而检查应用程序是否正在成功侦听。

非root用户一般不能绑定小于1024的端口。

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

如果存在上游防火墙,而您对其了解不多,则需要与网络管理员交谈。

只要这样做:

python manage.py runserver 0:8000

通过上面的命令,你实际上是将它绑定到外部IP地址。 所以现在当你访问你的IP地址和端口号时,你将能够在浏览器中访问它没有任何问题。

只需在浏览器地址栏输入以下内容:

<your ip address>:8000

eg:

192.168.1.130:8000

您可能需要编辑settings.py 在最后一行的settings.py中添加如下内容:

ALLOWED_HOSTS = ['*']

希望这对你有所帮助…