【发布时间】:2012-11-23 06:00:56
【问题描述】:
我目前正在使用屏幕并正在做
sudo python manage.py runserver 0.0.0.0:80
然后关闭终端。似乎有点像黑客。正确的做法是什么?
【问题讨论】:
标签: python django amazon-ec2 webserver
我目前正在使用屏幕并正在做
sudo python manage.py runserver 0.0.0.0:80
然后关闭终端。似乎有点像黑客。正确的做法是什么?
【问题讨论】:
标签: python django amazon-ec2 webserver
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 项目。我已经将 mod_wsgi 与 Apache 一起使用,gunicorn 与 nginx 一起使用 - 精确的解决方案取决于您和您的项目的要求,但 Django 手册的部署部分包含各种选项。
【讨论】:
这确实不是一个好主意;不应在本地开发机器之外使用内置的开发服务器。 Look at the docs:
请勿在生产环境中使用此服务器。它没有经过安全审计或性能测试。 (这就是它会保持下去的方式。我们的业务是制作 Web 框架,而不是 Web 服务器,因此改进此服务器以使其能够处理生产环境超出了 Django 的范围。)
你应该设置 nginx+gunicorn/uwsgi 或者只是 apache+mod_wsgi。
如果您的 ec2 实例完全无法与外界进行所有可能的通信(这不太可能),您可以使用 screen 命令
【讨论】: