我创建了一个EC2实例。在其上安装了Python 3.4,然后在其上安装了Django 1.10.6。我正在尝试开发我的第一个django应用程序
我启动了django服务器。
python manage.py runserver
我无法访问http://n.n.n.n:8000。 我收到ERR_CONNECTION_REFUSED错误。
我回到EC2实例并将协议/端口添加到安全组。这是我添加端口/协议
之后的样子Custom TCP Rule TCP 8000 0.0.0.0/0
Custom TCP Rule TCP 8000 ::/0
它不起作用。我甚至添加了一条规则,允许来自任何地方的所有流量它仍然无效。
但是,如果我按以下方式启动django服务器
python manage.py runserver 0.0.0.0:8000
我收到以下错误:
DisallowedHost at /
Invalid HTTP_HOST header: 'n.n.n.n:8000'. You may need to add 'n.n.n.n' to ALLOWED_HOSTS.
如果尝试将IP添加到ProjectName / settings.py,
ALLOWED_HOSTS = ['n.n.n.n'] #Make sure your host IP is a string
我收到ERR_CONNECTION_REFUSED错误
我可以ping IP。我可以ssh(有规则允许ssh)。看起来没有防火墙。
$ sudo service iptables status
iptables: Firewall is not running.
为什么我无法访问http / django服务器?
由于
答案 0 :(得分:0)
实际上,当我将主机添加到ProjectName / settings.py文件时,我一定不能正确启动服务器。我再次尝试,这次它起作用了。
所以看起来像
django服务器使用以下
在EC2实例上启动python manage.py runserver
可能无法从其他计算机访问。
django服务器以以下
开始python manage.py runserver 0.0.0.0:8000
只要将主机的IP地址添加到ProjectName / settings.py文件中的ALLOWED_HOSTS,就可以从Internet访问
ALLOWED_HOSTS = ['n.n.n.n'] #Make sure your host IP is a string
这是除了安全组中的条目之外的所有内容