Deploying Django (fastcgi, apache mod_wsgi, uwsgi, gunicorn) Deploying Django (fastcgi, apache mod_wsgi, uwsgi, gunicorn) django django

Deploying Django (fastcgi, apache mod_wsgi, uwsgi, gunicorn)


Neither have to use threads to be able to handle concurrent requests. It depends on how you configure them. You can use multiple processes where each is single threaded if you want.

For more background on mod_wsgi process/threading models see:

http://code.google.com/p/modwsgi/wiki/ProcessesAndThreading

The models are similar albeit that mod_wsgi handles process management itself. What happens in FASTCGI as far as process management depends on what FASTCGI hosting mechanism you are using and you don't say what that is.

Another difference is that FASTCGI still needs a separate FASTCGI to WSGI bridge such as flup where as mod_wsgi doesn't need any sort of bridge as implements WSGI interface natively.

Finally, FASTCGI process are an exec/fork of some supervisor process or the web server, dependent on hosting mechanism. In mod_wsgi the processes are a fork only of Apache parent process. In general this doesn't matter too much but does have some implications.

There are other differences but they arise more because mod_wsgi offers a lot more functionality and configurability than a FASTCGI hosting mechanism does.

Anyway, the question is a bit vague, can you be more specific about what it is you are wanting to know or contrast between the two and why? Answer can then perhaps be targeted better.