【发布时间】:2016-02-29 01:51:12
【问题描述】:
我使用 Python 和 Django 在本地机器上构建了一个应用程序。它工作正常。现在,我想自动化该过程以在生产服务器上启动我的 Django 应用程序。
我必须做些什么来实现这一目标?
【问题讨论】:
我使用 Python 和 Django 在本地机器上构建了一个应用程序。它工作正常。现在,我想自动化该过程以在生产服务器上启动我的 Django 应用程序。
我必须做些什么来实现这一目标?
【问题讨论】:
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 应用程序。
【讨论】: