使用Django的fastcgi服务器有什么缺点

时间:2012-06-26 22:09:22

标签: django deployment fastcgi gunicorn

我在我的一些Django项目的生产中使用nginx + fastcgi(manage.py runfcgi ...)。很多人建议使用nginx + gunicorn。使用 gunicorn 而不是使用Django的fastcgi服务器有什么好处?

2 个答案:

答案 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

嗯,gunicorn say

  

作为一个只能在类Unix平台上运行的服务器,独角兽强烈依赖于做一件事的Unix理念,并且(希望)做得很好。尽管使用HTTP,unicorn仍然是运行基于Rack的 Ruby应用程序的后端应用程序服务器。

我为我的django应用程序nginx(来自nginx.org repos的最新稳定版)+ uWSGI(来自Debian stables)练习 - 完美地工作:)


编辑18.05.2012

通过比较fcgi gunicorn uWSGI

链接到2010主题
  

fcgi(线程)6​​40 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在我的服务器上运行各种项目。