Es handelt sich um 1 - 3 Frontend-Server insgesamt, keine große Serverfarm mit Lastenausgleich zwischen den Ebenen?
Wenn Sie Nginx vor Vanish setzen, können Sie die HTTP-Komprimierung im Handumdrehen durchführen. Dies ist eine bewährte Vorgehensweise, auf die jedoch verzichtet werden kann. (Inhalte in Varnish werden häufig nicht komprimiert, sodass ESI Includes funktioniert und Sie nicht mit mehreren zwischengespeicherten Versionen desselben Objekts arbeiten müssen, abhängig von der Übereinstimmung von Header und Browser.)
In Bezug auf Nginx auf dem App-Server - ist Apache mit mod_wsgi nicht die empfohlene und häufigste Methode, um heutzutage neue Django-Installationen bereitzustellen? Mir ist kein zwingender Grund für die Verwendung von nginx / fastcgi über Apache / mod_wsgi für Django bekannt. Sie sollten sich jedoch von einem Django-Experten beraten lassen.
Was Lacke anbelangt, die attraktive Lastausgleichsfunktionen haben, die Nginx nicht bietet, sehe ich nicht, was sie sind? Der Lack hat ein zufälliges und ein Round-Robin-Gleichgewicht. nginx verfügt über Round-Robin, Client-IP und konsistentes Hashing. Ich sehe keinen signifikanten Vorteil für Varnish? Ist es VCL oder Varnish 'anmutiges Konfigurations-Reload oder etwas anderes?
Für ein kleines 1-3 Server Setup würde ich das wohl einfach machen
Lack -> Apache / mod_wsgi / Django
oder vielleicht
Tintenfisch -> Apache / mod_wsgi / Django
und ignorieren Sie die HTTP-Komprimierung der Einfachheit halber, es sei denn, die Bandbreite ist teuer.
Aktualisieren:
Graham Dumpleton hat unten einen wertvollen Kommentar geschrieben. Er erwähnt ein sehr verbreitetes Setup, zum Beispiel ein Blog auf einem VPS oder eine kleine Webfarm ohne Caching:
nginx -> Apache / mod_wsgi / Django
Dies ist aus mehreren Gründen eine sehr gute Lösung:
- Einfaches Setup
- nginx, das eine hohe Geschwindigkeit und einen minimalen Overhead aufweist, verwaltet das Serving statischer Dateien und die Verbindung zum Browser wird beibehalten.
- Django läuft in Graham Dumpletons exzellentem mod_wsgi, der empfohlenen Plattform für Django.
Der Grund, warum ich dies anfangs nicht erwähnte, war, dass für OP anscheinend Varnish erforderlich war, eine sehr leistungsfähige Caching-Lösung. Die Kombination nginx / Apache / mod_wsgi kann kein Caching mit einer Leistung und Flexibilität durchführen, die mit Varnish übereinstimmt.