我在我的一些Django项目的生产中使用nginx + fastcgi
(manage.py runfcgi ...)。很多人建议使用nginx + gunicorn
。使用 gunicorn 而不是使用Django的fastcgi
服务器有什么好处?
答案 0 :(得分:28)
我只是告诉你为什么需要使用类似WSGI的服务器:)但是如果你觉得使用fcgi很舒服 - 只需使用它
简短回答:WSGI(作为协议)很酷,因为its native
或者如果“你需要更深入”(c)
下一个问题“FastCGI与类似WSGI的服务器?”
这里有一些答案:
关于gunicorn,uWSGI和切诺基,nginx。别混它们!
nginx是web-server,可以处理http请求并将其发送到WSGI后端。 (但首先,它对于静态内容处理来说非常快。) 而WSGI后端处理你的django应用程序。
关于切诺基,我认为它处理与nginx相同的任务,但我不能使用它。
而gunicorn,uWSGI是WSGI后端,它使用django app运行线程并执行many other tasks
作为一个只能在类Unix平台上运行的服务器,独角兽强烈依赖于做一件事的Unix理念,并且(希望)做得很好。尽管使用HTTP,unicorn仍然是运行基于Rack的 Ruby应用程序的后端应用程序服务器。
我为我的django应用程序nginx(来自nginx.org repos的最新稳定版)+ uWSGI(来自Debian stables)练习 - 完美地工作:)
编辑18.05.2012
链接到2010主题fcgi(线程)640 r / s
fcgi(prefork 4处理器)240 r / s(*)
gunicorn(2名工人)1100 r / s
gunicorn(5名工人)1300 r / s
gunicorn(10名工人)1200 r / s(?!?)
uwsgi(2名工人)1800 r / s
uwsgi(5名工人)2100 r / s
uwsgi(10名工人)2300 r / s
(*这使得我的计算机在通过屋顶时非常缓慢的CPU)
答案 1 :(得分:4)
正如b1-所说,WSGI是原生的(看看this post)。
此外,this post也有类似的问题。
从我个人的角度来看,前段时间我一直在使用Nginx + uwsg in vhost mode在我的服务器上运行各种项目。