Stiamo parlando di 1 - 3 server frontend in totale, non una server farm di grandi dimensioni con bilanciamento del carico tra i livelli?
Mettere nginx davanti a Vanish ti consente di eseguire la compressione HTTP al volo. Questa è una best practice per le prestazioni, ma potrebbe essere eliminata. (Il contenuto in Varnish è spesso non compresso, quindi ESI include il lavoro e quindi non è necessario gestire più versioni memorizzate nella cache dello stesso oggetto a seconda della corrispondenza dell'intestazione / browser di Vary.)
Per quanto riguarda nginx sul server delle app - Apache con mod_wsgi non è il modo consigliato e più comune per distribuire nuove installazioni Django al giorno d'oggi? Non sono a conoscenza di un motivo convincente per l'utilizzo di nginx / fastcgi su Apache / mod_wsgi per Django; ma dovresti ricevere consigli da un esperto di Django.
Riguardo a Varnish che ha interessanti caratteristiche di bilanciamento del carico che nginx non ha, non vedo cosa sono? La vernice ha un bilanciamento casuale e round-robin. nginx ha round-robin, IP client e hashing coerente: non vedo un vantaggio significativo per Varnish? È VCL o Varnish 'grazioso config ricaricare o qualcos'altro?
Per una piccola configurazione del server 1-3 credo che lo farei
Vernice -> Apache / mod_wsgi / Django
o forse
Calamari -> Apache / mod_wsgi / Django
e ignora la compressione HTTP per semplicità, a meno che bandwith non sia costoso.
Aggiornare:
Graham Dumpleton ha scritto un prezioso commento qui sotto. Menziona una configurazione molto comune, ad esempio un blog su un VPS o una piccola web farm senza memorizzazione nella cache:
nginx -> Apache / mod_wsgi / Django
Questa è un'ottima soluzione, per un paio di motivi:
- Installazione semplice
- nginx, che ha un'alta velocità e un sovraccarico minimo, gestisce la manutenzione di file statici e la connessione del browser keepalive.
- Django corre nell'eccellente mod_wsgi di Graham Dumpleton, la piattaforma consigliata per Django.
La ragione per cui non ho menzionato questo inizialmente è che OP sembrava richiedere Varnish, una soluzione di cache dalle prestazioni molto elevate. La combo nginx / Apache / mod_wsgi non può eseguire la memorizzazione nella cache con un livello di prestazioni e flessibilità che corrisponde a Varnish.