我有一个t1.micro实例与公共DNS类似于以下内容:
ec2-184-72-67-202.compute-1.amazonaws.com
(一些数字已经改变)
在这个实例中,我正在运行下面的Django应用程序:
$ sudo python manage.py runserver --settings=vlists.settings.dev Validating models... 0 errors found Django version 1.4.1, using settings 'vlists.settings.dev' Development server is running at http://127.0.0.1:8000/
我已经通过AWS控制台打开了port 8000
:
在Chrome中导航到以下url时,我收到以下消息: Oops! Google Chrome could not connect to Oops! Google Chrome could not connect to :
http://ec2-184-72-67-202.compute-1.amazonaws.com:8000
我究竟做错了什么?
用netstat:
netstat -lan | grep 8000 tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN
>Development server is running at http://127.0.0.1:8000/
听起来像服务器设置为只响应本地主机。
检查您的Djangoconfiguration,并确保它设置为在所有接口上进行响应。
更新:
netstat -lan | grep 8000 tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN
是的,绝对是你的绑定问题。 127.0.0.1应该是您的公有IP或所有接口的0.0.0.0。
您需要将runserver绑定到所有端口。默认情况下它只绑定到localhost
python manage.py runserver --settings=vlists.settings.dev 0.0.0.0:8000