我使用Python和Django在本地计算机上构建了一个应用程序。它的工作正常。现在,我想自动化在生产服务器上启动Django应用程序的过程。
我必须做些什么来实现这个目标?
答案 0 :(得分:6)
Django文档建议不要在生产中使用Django内置服务器。
请勿在生产设置中使用此服务器。它还没有消失 通过安全审核或性能测试。 (这就是它的方式 要留下来我们的业务是制作Web框架,而不是Web 服务器,因此改进此服务器以便能够处理生产 环境超出了Django的范围。)
建议使用gunicorn或uWSGI启动您的WSGI应用程序:
- How to use Django with gunicorn
- How to use Django with uWSGI
另一个好的做法是,使用supervisord开始你的过程,然后如果它因某种原因死亡或被杀,那么supervisord将重启这个过程。
要完成,请使用 nginx 或 apache 作为代理服务器,这是可以处理费用的强大服务器。大多数教程或文档,建议使用nginx,因为它是一个高性能的HTTP服务器。
NGINX是一个免费的,开源的,高性能的HTTP服务器并且是反向的 代理,以及IMAP / POP3代理服务器。 NGINX以其着名而闻名 高性能,稳定性,丰富的功能集,简单的配置, 和低资源消耗。
选中此项以了解如何配置它们:
- Deploying Gunicorn with nginx
- Deploying uWSGI with nginx
在部署您的Django应用程序之前,请阅读此清单,以确保一切配置良好:Django - Deployment checklist
使用此体系结构和工具,您将能够使用简单的supervisord
命令启动gunicorn进程。这就是全部。然后gunicorn将启动您的WSGI应用程序。