在部署Django项目时,我是一个非常棒的人.我想知道部署Django项目的各种方法是什么,哪一个是最受欢迎的.
Django文档列出了Apache/mod_wsgi,Apache/mod_python和FastCGI等.
mod_python现在已弃用,应该使用mod_wsgi.
使用mod_wsgi的 Django 很容易设置,但是:
因此,对于服务器上的多个站点(针对不同的django/python版本),mod_wsgi不是最佳解决方案.
FastCGI可以与virtualenv一起使用,也可以与不同的python版本一起使用
./manage.py runfcgi …
然后配置您的Web服务器以使用此fcgi接口.
关于django部署的新热点似乎是枪手.它是一个实现wsgi的网络服务器,通常用作后端,"大"网络服务器作为代理.
使用gunicorn进行部署感觉很像fcgi:你运行一个使用manage.py执行django处理的进程,以及作为世界前端的Web服务器.
但枪支部署比fcgi有一些优势:
因此,我建议使用gunicorn解决方案,除非您在单个服务器上拥有低流量的单个站点,否则您可以使用wsgi解决方案.但我认为从长远来看,你对枪炮更加满意.
如果你有一个只有django的网络服务器,我建议使用nginx作为frontendproxy,因为它是最好的表现(再次基于我在一些博文中读到的基准 - 再也没有网址).我个人使用apache作为frontendproxy,因为我需要它在服务器上托管的其他站点.
可以在此处找到有关django部署的简单设置说明:http: //ericholscher.com/blog/2010/aug/16/lessons-learned-dash-easy-django-deployment/
我对gunicorn的init.d脚本位于github:https://gist.github.com/753053
不幸的是我还没有博客,但经验丰富的系统管理员应该能够进行必要的设置.
使用 Nginx/Apache/mod-wsgi 就不会出错。
如果您喜欢简单的替代方案,只需使用 Apache。
有一个非常好的部署文档:http://lethain.com/entry/2009/feb/13/the-django-and-ubuntu-intrepid-almanac/