Yo uso gunicorn para correr django internamente, y nginx como servidor abierto al mundo. Gunicorn es igual de fácil de correr que el runfcgi, pero es mejor. Y nginx es por default bastante más liviano y rápido que apache, y bastante más simple de configurar.
A gunicorn lo levanto y manejo usando supervisor, por simpleza.
Al actualizar solo es necesario restartear gunicorn, así que después de actualizar el código simplemente se corre un "service supervisor restart" (se podría solo restartear el servicio de supervisor específico de tu app, pero lo restarteo entero por si cambié la config del servicio en el deploy, para que la vuelva a leer).
Acá tengo un instructivo bastante lindo que armé sobre cómo levantar todo, seguro te sirve:
Saludos!