Qualcuno può spiegare la differenza tra apache mod_wsgi in modalità daemon e django fastcgi in modalità thread. Entrambi usano i thread per la concorrenza, penso. Supponiamo che io stia usando nginx come front-end per apache mod_wsgi.Distribuire Django (fastcgi, apache mod_wsgi, uwsgi, gunicorn)
UPDATE:
sto paragonando django costruito nel fastcgi (./ metodo manage.py = maxchildren filettati = 15) e mod_wsgi in modalità 'daemon' (WSGIDaemonProcess esempio fili = 15). Entrambi usano i thread e acquisiscono GIL, ho ragione?
UPDATAE 2:
Quindi, se entrambi sono simili, non v'è alcun beneficio di apache mod_wsgi contro FastCGI. Vedo tali pro di FastCGI:
- non abbiamo bisogno apache
- consumiamo meno RAM
- ho notato che FastCGI ha minore in testa
UPDATAE 3:
Ora sono felice con nginx + uwsgi.
UPDATAE 4:
ora sono felice con nginx + gunicorn :)
Sto confrontando django integrato in fastcgi (./ manage.py method = threaded maxchildren = 15) e mod_wsgi nella modalità 'daemon' (WSGIDaemonProcess example threads = 15). –
Sì, entrambi si affidano al multithreading per gestire richieste simultanee. Il GIL è utilizzato anche se un singolo server WSGI con thread, non è possibile evitarlo facilmente senza ricompilare il codice sorgente Python e disabilitare il supporto del threading. Fatelo e non potete usare mod_wsgi poiché non supporta Python che ha disabilitato il threading. –
Cosa intendi con "il GIL viene utilizzato anche se un singolo server WSGI con thread"? È usato quando configuriamo mod_wsgi per fork i processi invece dei thread? –