如何在aws中使用django app配置弹性IP?

时间:2017-05-30 09:29:17

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

我正在EC2-ubuntu中使用django构建应用程序,并且我已将Elastic ip与我的实例相关联。

我已完成以下步骤: 1.首先在ec2免费层创建ubuntu实例。 2.安装了python。 3.安装了点子。 4.安装django。 5.使用django-admin startproject创建一个django项目。 6.使用这些commads运行服务器python manage.py runserver 0.0.0.0:80 7.创建一个弹性ip并与实例关联。 8.使用http 0.0.0.0:80地址配置安全入站设置。 9.能够使用任何浏览器ping我的项目。

但问题是当我关闭我提供runserver命令的putty会话时,django项目也会停止。我没有手动停止它。 请帮助我在关闭putty会话后继续跑步。

谢谢, 克里帕夏尔马

2 个答案:

答案 0 :(得分:0)

看看这个Answer

我强烈建议您开始使用Elastic Beanstalk(Python实例)来为您处理所有这些步骤。设置非常简单,无需担心您列出的任何步骤。

您可以使用this instruction查看如何在不到5分钟的时间内部署Django应用。

答案 1 :(得分:0)

问题

您正在尝试将调试服务器保留为远程部署的应用程序。

您可能需要查看the runserver command documentation。以下是相关部分:

  

django-admin runserver [addrport]

     

在本地计算机上启动轻量级开发Web服务器。默认情况下,服务器在IP地址127.0.0.1上的端口8000上运行。您可以明确传入IP地址和端口号。

     

...

     

请勿在生产设置中使用此服务器。它没有经过安全审核或性能测试。 (这就是它将如何保留。我们的业务是制作Web框架,而不是Web服务器,因此改进此服务器以便能够处理生产环境超出了Django的范围。)

网络服务器

浏览了上述文档后,您可能需要查看"How to deploy with WSGI" section,其中提供了一些常用Web服务器的建议。我最喜欢的Gunicorn包含一个用法示例:

$ pip install gunicorn
$ gunicorn myproject.wsgi

决定并安装了网络服务器后,您需要" daemonize"把它暴露给世界。

前者通常是通过在您的操作系统上创建服务来完成的,对于ubuntu,根据版本的不同,它可能是upstart或systemd。 Gunicorn docs have examples for both

后者通常使用http-server / proxy(例如nginx或apache httpd)来实现。再次,Gunicorn has an example for us

你可以看到我为什么这么喜欢☺️

后记

虽然技术上可以将调试服务器作为服务运行,甚至可以在GNU screentmux等终端多路复用器中运行,但它不是推荐的或稳定的长期解决方案。

也就是说,这些对于了解非常有用,所以请阅读上述工具并学会使用它们,因为它们将来在您的工具集中非常宝贵,例如为了避免意外终止长时间运行的命令(如迁移)等。