Mar*_*s J 22 django amazon-ec2
我是EC2和Web开发的新手.目前我正在运行Linux EC2实例,并已安装Django.在开始我的真实项目并尝试运行Django测试服务器之前,我正在创建一个测试项目.
这是我在shell中的输出:
python manage.py runserver ec2-###-##-##-##.compute-1.amazonaws.com:8000
Validating models...
0 errors found
Django version 1.3, using settings 'testsite.settings'
Development server is running at http://ec2-###-##-##-##.compute-1.amazonaws.com:8000/
Quit the server with CONTROL-C.
Run Code Online (Sandbox Code Playgroud)
为了测试它是否正在尝试访问:ec2-###-##-##-##.compute-1.amazonaws.com:8000但我总是从浏览器中收到"无法连接"消息.
每当我在计算机上执行此操作时,我会成功访问DJango开发主页127.0.0.1:8000.当我在我的EC2实例上执行此操作而不是我自己的笔记本电脑时,有人可以帮我弄清楚我做错了什么/可能会丢失吗?
eez*_*zis 43
使用带有Ubuntu的ec-2实例,我发现指定0.0.0.0:8000有效:
$python manage.py runserver 0.0.0.0:8000
Run Code Online (Sandbox Code Playgroud)
当然,在安全组设置中需要为TCP打开8000.
1)您需要确保将端口8000作为自定义TCP规则添加到入站端口的安全组列表中
2)可能的情况是,您在AWS控制台上列出的与您的实例关联的IP是PUBLIC IP或公共域名(即ec2 - ### - ## - ## - ##.compute-亚马逊指定的1.amazonaws.com或174.101.122.132).
2.1)如果它是公共IP,那么您的实例无法知道分配给它的公共IP是什么,而只知道它所分配的本地IP.
2.2)要在Linux系统上获取本地IP,请键入:
$ ifconfig
Run Code Online (Sandbox Code Playgroud)
然后查看eth0数据,您将看到格式为xxx.xxx.xxx.xxx的"inet addr"旁边的IP(例如10.10.12.135)这是您的本地IP
3)要成功运行runserver,您可以执行以下两种操作之一:
$ python manage.py runserver <LOCAL IP>:8000
or
$ python manage.py runserver 0.0.0.0:8000
Run Code Online (Sandbox Code Playgroud)
**选项二也很有效,正如欧内斯特·艾兹在答案中提到的那样. 编辑:从Django书:"IP地址0.0.0.0告诉服务器在任何网络接口上侦听"
**我的公共知识产权理论可能是错误的,因为我不确定亚马逊如何分配IP.我很感激被纠正了.
| 归档时间: |
|
| 查看次数: |
15184 次 |
| 最近记录: |