Estamos hablando de 1 a 3 servidores frontend en total, ¿no es una gran granja de servidores con equilibrio de carga entre los niveles?
Poner nginx delante de Vanish le permite hacer compresión HTTP sobre la marcha. Esa es una mejor práctica de rendimiento, pero podría prescindirse de ella. (El contenido en Varnish a menudo se mantiene sin comprimir, de modo que ESI incluye el trabajo y, por lo tanto, no tiene que lidiar con múltiples versiones en caché del mismo objeto dependiendo de la coincidencia del encabezado / navegador Vary).
Con respecto a nginx en el servidor de aplicaciones, ¿ Apache con mod_wsgi no es la forma recomendada y más común para implementar nuevas instalaciones de Django en la actualidad? No conozco una razón convincente para usar nginx / fastcgi sobre Apache / mod_wsgi para Django; pero deberías obtener consejos de un experto de Django.
En cuanto a que Varnish tiene características de equilibrio de carga atractivas que nginx no tiene, ¿no veo cuáles son? El barniz tiene un balance aleatorio y redondo. nginx tiene round-robin, IP de cliente y hashing constante: ¿no veo un beneficio significativo para Varnish? ¿Es la recarga de configuración elegante de VCL o Varnish o algo más?
Para una pequeña configuración de servidor 1-3, supongo que simplemente haría
Barniz -> Apache / mod_wsgi / Django
o tal vez
Calamar -> Apache / mod_wsgi / Django
e ignore la compresión HTTP por simplicidad, a menos que el ancho de banda sea costoso.
Actualizar:
Graham Dumpleton ha escrito un valioso comentario a continuación. Menciona una configuración muy común, por ejemplo, un blog en un VPS, o una pequeña granja web sin almacenamiento en caché:
nginx -> Apache / mod_wsgi / Django
Esta es una muy buena solución, por un par de razones:
- Configuración simple
- nginx, que tiene alta velocidad y una sobrecarga mínima, maneja el servicio de archivos estáticos y la conexión del navegador de manera activa.
- Django se ejecuta en el excelente mod_wsgi de Graham Dumpleton, la plataforma recomendada para Django.
La razón por la que no mencioné esto inicialmente es que OP parecía requerir Varnish, una solución de almacenamiento en caché de muy alto rendimiento. El combo nginx / Apache / mod_wsgi no puede almacenar en caché con un nivel de rendimiento y flexibilidad que coincida con Varnish.