Tengo dos servidores detrás de un equilibrador de carga. Cada servidor ejecuta un servidor memcached y el archivo de configuración (que es idéntico en ambos servidores) los tiene definidos (en resumen: caché compartido).¿Cómo usar django-compressor detrás del equilibrador de carga?
Quiero que las rutas a los archivos generados sean idénticas en los servidores para que el cliente no tenga que descargar más de una vez.
Para que esto funcione, necesito entender cómo funciona el compresor django.
- ¿Cuál es el propósito real de la memoria caché en el compresor django?
- ¿El contenido del archivo está almacenado tanto en la memoria caché como en el sistema de archivos?
- En caso afirmativo, ¿qué sucede primero?
- Espero que esté haciendo las preguntas correctas aquí. Siéntase libre de agregar algunos.
Una secuencia más detallada y mejor construida que this sería muy útil.
Editar
- Desde los servidores de ambas comparten un servidor memcached, debo establecer
COMPRESS_CACHE_KEY_FUNCTION = 'compressor.cache.socket_cachekey'
(ver develop branch) o ¿Si se usa la misma clave de caché contribuir a mi punto de tener los mismos nombres de archivo? - De la manera en que lo entiendo, mtime se recopila de los archivos js/css de origen para determinar si pueden haber cambiado y se debe generar un nuevo archivo a partir de ellos. ¿Correcto?
- Esto probablemente no ocurra en todas y cada una de las cargas. ¿Cuando sucede?
Si fuera usted y deseara conocer tales detalles sobre django-compressor, leería el código (código django-compressor). –
Ya lo hice. Pero aunque puedo entender por qué la mayoría del código hace parte por parte, no puedo comprender la imagen más grande de eso si sabes a lo que me refiero. Entonces pensé: tal vez alguien ha estado trabajando en django-compressor más de lo que yo tengo y puede explicarme cómo funciona para poder comprender mejor qué hacer con el código mientras lo miro. – demux