Qual è il migliore per Django? Lighttpd o Nginx? O forse qualcos'altro? [chiuso]


18

Quale di Lighttpd e Nginx è, in base alla tua esperienza, più adatto a Django? Ho usato entrambi e non riesco quasi a notare alcuna differenza, funzionano semplicemente bene ... Ci sono casi d'uso in cui uno di essi agisce molto meglio dell'altro? Quando rispondi, tieni in considerazione sia la semplicità di configurazione che l'efficienza.

La mia solita installazione è quella di avere un processo Django FCGI separato (come in ./manage.py runfcgi daemonize=false port=8098 host=127.0.0.1) avviato tramite demoneols o uno init.dscript e lighty / nginx che agisce come proxy inverso.

Oh, e se ritieni che qualche altro server http sia molto meglio per Django di Lighty e Nginx, non esitare a condividere i tuoi pensieri.


Se un servizio fastcgi muore, i supervisori daemontools lo riavvieranno entro cinque secondi, quindi il servizio viene eseguito il backup. Ma hai ancora un piccolo ritardo di downtime lì. Nel mio dispiegamento ho trovato fastcgi fragile che si fermava inaspettatamente sotto una leggera pressione. Dopo alcuni periodi di inattività e accoppiando telefonate scomode da parte dei clienti, ho cambiato Nginx per invertire il proxy in Apache mod_wsgi e da allora tutto ronza.

Risposte:


14

Sia Nginx che Lighttpd sono scelte migliori di apache quando si tratta di usarli come proxy inverso per Django, Rails, ecc. Entrambi supportano il proxy FastCGI e Http. Entrambi offrono un singolo modello basato su select () (o migliore) per un uso efficiente delle risorse.

Comunque il mio voto va a Nginx, ha una base di utenti molto attiva (è attualmente il prediletto del set Ruby on Rails) ed è in fase di sviluppo attivo. Lighttpd potrebbe essere scambiato per essere morto, 2+ anni e stiamo ancora aspettando una beta di 1,5.


7

mod_wsgi è il modo consigliato per avviare l'applicazione Django in produzione. Mod_wsgi di Apache è molto meglio di nginx. Non puoi trovare il pacchetto ufficiale (nelle attuali distribuzioni Linux) per mod_wsgi di nginx e devi compilarlo da solo. Mi piace nginx ma se vuoi giocare in sicurezza, gioca con Apache mod_wsgi.


2
Nginx mod_wsgi non è qualcosa che vorresti usare. Nginx è meglio servire contenuto statico e invertire il proxy in Apache mod_wsgi per generare la dinamica. Non vorrai usare un web server asincrono sia per generare pagine dinamiche sia per pubblicare contenuti statici. Anche Apache mod_wsgi non ha molto senso. Non vorrai che quella bestia sia occupata a spruzzare attorno a file statici, mentre dovrebbe fare il lavoro pesante. Leggi di più qui b-list.org/weblog/2008/jun/23/media

5

mod-wsgi è il modo migliore per eseguire app di django in produzione, meno complicato di fastcgi e nessun problema con i tempi di avvio ecc.

Il vero mod-wsgi è per apache, ma esiste un altro mod-wsgi per nginx. Quello di Apache è geniale, non posso commentare quello di Nginx.

Personalmente, starei lontano da lighttpd. Non ha la stabilità di nginx, non ho ancora visto un caso di lighttpd che non ha una perdita di memoria.

Fondamentalmente, la mia prima scelta sarebbe apache 2.2, la mia seconda scelta sarebbe nginx.

Non credere al clamore sui tempi di risposta e sulla scalabilità. La verità è che non importa. (Google usa Apache).


Google usa GWS ( en.wikipedia.org/wiki/Google_Web_Server ) non Apache. Yahoo usa Apache, ma è un fork antico di 1.3.
Dave Cheney,

YouTube usa o almeno usa lighttpd, quindi non penso che sia così male. Vedi highscalability.com/youtube-architecture .
Cristian Ciupitu,

Sì, ma sebbene GWS sia un progetto segreto, è noto che si basa su Apache.

ciò che YT non sta dicendo è che hanno la loro forchetta leggera. È vero leggero ha un noto problema di perdita di memoria. Credo che ormai potrebbero averlo risolto, ma il rappresentante persiste.
Abhishek Dujari,

2

Inoltre, considera l'utilizzo di Google App Engine. Puoi ospitare il tuo progetto Django lì gratuitamente e non devi preoccuparti di mantenere l'infrastruttura del server.


8
Django su GAE ha limitazioni significative, come non supportare nessuna delle funzionalità di base di dati / ORM di Django. Se supporta ciò di cui hai bisogno, fantastico - ma controlla attentamente!

Credo che MySQL sia ora supportato da GAE, quindi suppongo che lo sarà anche ORM. Anche se è vero, non ho esperienza di provarlo. Django senza ORM è come il porno senza torrent.
Abhishek Dujari,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.