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

¿Alguien puede explicar la diferencia entre apache mod_wsgi en modo daemon y django fastcgi en modo subproceso? Ambos usan hilos para la concurrencia, creo. Suponiendo que estoy usando nginx como extremo frontal de apache mod_wsgi.

ACTUALIZAR:

Estoy comparando django integrado en fastcgi (./ manage.py method = threaded maxchildren = 15) y mod_wsgi en modo ‘daemon’ (ejemplo de WSGIDaemonProcess threads = 15). Ambos usan hilos y adquieren GIL, ¿verdad?

ACTUALIZACIÓN 2:

Entonces, si ambos son similares, ¿hay algún beneficio de apache mod_wsgi contra fastcgi? Veo tales pros de fastcgi:

  • no necesitamos apache
  • consumimos menos RAM
  • Me di cuenta de que FastCgi tiene menos gastos generales.

ACTUALIZACIÓN 3:

Ahora estoy feliz con nginx + uwsgi.

ACTUALIZACIÓN 4:

Ahora estoy feliz con nginx + gunicorn 🙂

Tampoco tienen que usar hilos para poder manejar solicitudes concurrentes. Depende de cómo los configures. Puede usar múltiples procesos donde cada uno es un solo hilo si lo desea.

Para obtener más información sobre los modelos de proceso / subprocesamiento mod_wsgi, consulte:

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

Los modelos son similares aunque mod_wsgi maneja la administración del proceso en sí. Lo que sucede en FASTCGI en cuanto a la gestión de procesos depende del mecanismo de alojamiento de FASTCGI que está utilizando y no dice qué es eso.

Otra diferencia es que FASTCGI todavía necesita un puente FASTCGI a WSGI separado, como flup, donde mod_wsgi no necesita ningún tipo de puente, ya que implementa la interfaz WSGI de forma nativa.

Finalmente, el proceso FASTCGI es un exec / fork de algún proceso supervisor o el servidor web, que depende del mecanismo de alojamiento. En mod_wsgi, los procesos son una bifurcación del proceso principal de Apache. En general, esto no importa demasiado pero tiene algunas implicaciones.

Existen otras diferencias, pero surgen más porque mod_wsgi ofrece mucha más funcionalidad y configurabilidad que un mecanismo de alojamiento FASTCGI.

De todos modos, la pregunta es un poco vaga, ¿puedes ser más específico sobre qué es lo que quieres saber o contrastar entre los dos y por qué? La respuesta puede entonces ser mejor dirigida.