访问AWS ec2主机上的Django App

时间:2016-01-03 13:33:02

标签: django amazon-web-services amazon-ec2 aws-cli

这个问题可能看起来非常简单,但如果可能的话,请尽量为此提出解决方案。 我在AWS ec2主机上部署了一个django应用程序,我能够成功运行以下命令。

(venv)[ec2-user@ip-xxx-xx-xx-xx abc]$ python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).
January 03, 2016 - 13:15:31
Django version 1.7.1, using settings 'abc.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

但我无法从浏览器访问http://127.0.0.1:8000/。 谷歌搜索它建议使用nginx或gunicorn。我不确定是否会使用nginx,gunicorn等。

有人可以告诉我如何从浏览器访问它? 谢谢,

3 个答案:

答案 0 :(得分:4)

您需要在AWS实例菜单中打开HTTP端口。(除了在AWS中关闭的ssh之外的所有端口)
转到您的console.aws.amazon.com,然后选择您的实例并转到最后一个菜单项“安全组”。它是一个精灵,点击底部菜单中的“入站”,然后“编辑”,并添加HTTP或任何你想要的端口:) 并确保使用您的公共AWS IP,在浏览器中打开

为您添加一些屏幕,希望有所帮助:
enter image description here

enter image description here

enter image description here

答案 1 :(得分:1)

要对此进行存档,您需要执行3个简单的步骤。

  1. 转到EC2控制台并打开您实例的安全组。转到入站选项卡。 单击编辑,然后按添加规则...添加具有“自定义TCP规则”和端口8000类型的条目。
  2. 转到您的Django项目,您的应用程序并打开settings.py脚本。在allowed_hosts部分中列出您的IPv4地址。.Ex:ALLOWED_HOSTS = ['公共IPv4']'
  3. 现在在控制台中运行命令python manage.py runserver 0.0.0.0:8000 ...

打开任何网络浏览器(从任何设备)并打开“ public IPv4”链接:8000

不需要任何应用程序服务器,例如Apache,NginX。

答案 2 :(得分:0)

@Baterson是对的。您应首先为您的服务器打开端口8000。

官方文件在这里:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/authorizing-access-to-an-instance.html。它非常详细。