Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the disadvantage of using Django's fastcgi server

Tags:

I'm using nginx + fastcgi( manage.py runfcgi ...) on production for some of my Django projects. A lot of people suggests to use nginx + gunicorn. What is advantage of using gunicorn instead of using Django's fastcgi server?

like image 654
Murat Çorlu Avatar asked Jun 26 '12 22:06

Murat Çorlu


2 Answers

I'm just tell why you need to use WSGI-like servers :) but if you feel comfortable with using fcgi - just use it

Short answer: WSGI (as protocol) is cool because its native

Or if "You need to go deeper"(c)

Next question "FastCGI vs WSGI-like servers?"

Some answers here:

  • Differences and uses between WSGI, CGI, FastCGI, and mod_python in regards to Python?
  • What's the difference between scgi and wsgi?
  • Is there a speed difference between WSGI and FCGI?
  • How Python web frameworks, WSGI and CGI fit together

About gunicorn, uWSGI and cherokee, nginx. Dont mix them!

nginx is web-server which can handle http requests and can send it to WSGI backend. ( But first of all it extremly fast for static content handling. ) And WSGI backend handle you django application.

About cherokee, I think it handle the same tasks as nginx but I'm not work with it.

And gunicorn, uWSGI are WSGI backend which run threads with django app and do many other tasks

And hmmm, gunicorn say that

Being a server that only runs on Unix-like platforms, unicorn is strongly tied to the Unix philosophy of doing one thing and (hopefully) doing it well. Despite using HTTP, unicorn is strictly a backend application server for running Rack-based Ruby applications.

I practice for my django apps nginx (latest stable from nginx.org repos)+uWSGI (from Debian stables) - works perfectly :)


edited 18.05.2012

Link to 2010 topic with comparing fcgi gunicorn uWSGI

fcgi (threaded) 640 r/s

fcgi (prefork 4 processors) 240 r/s (*)

gunicorn (2 workers) 1100 r/s

gunicorn (5 workers) 1300 r/s

gunicorn (10 workers) 1200 r/s (?!?)

uwsgi (2 workers) 1800 r/s

uwsgi (5 workers) 2100 r/s

uwsgi (10 workers) 2300 r/s

(* this made my computer exceptionally sluggish as CPU when through the roof)

like image 60
b1_ Avatar answered Sep 28 '22 19:09

b1_


As b1- says, WSGI is native (take a look at this post).

Also, this post has a similar question.

From my personal point of view, some time ago i've been using Nginx + uwsg in vhost mode to run various project on my server.

like image 39
reiven Avatar answered Sep 28 '22 19:09

reiven