让Django服务器在EC2实例上运行的正确方法是什么?

时间:2012-11-22 21:57:58

标签: python django amazon-ec2 webserver

我目前正在使用屏幕并正在进行

sudo python manage.py runserver 0.0.0.0:80

然后关闭终端。看起来有点像黑客。这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

runserver是一个开发服务器。你不应该在生产中使用它,正如https://docs.djangoproject.com/en/1.4/ref/django-admin/#runserver-port-or-address-port中所说:

  

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

您应该使用https://docs.djangoproject.com/en/1.4/howto/deployment/中给出的方法之一在生产中部署Django项目。我使用了带有Apache的mod_wsgi,带有nginx的gunicorn - 精确的解决方案取决于你和项目的要求,但是Django手册的部署部分经历了各种选项。

答案 1 :(得分:0)

这真的不是一个好主意;不应在本地开发机器之外使用内置开发服务器。 Look at the docs:

  

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

相反,你应该设置nginx + gunicorn / uwsgi或只是apache + mod_wsgi。

如果您的ec2实例完全被阻止来自外部世界的所有可能的通信(这不太可能),您可以使用screen命令