Solución de problemas de almacenamiento en caché de nginx para activos estáticos

Solución de problemas de almacenamiento en caché de nginx para activos estáticos

Tengo un sitio web de Django donde los usuarios publican imágenes para que las vea toda la comunidad (algo así como 9gag).

Utilizo el almacenamiento de Azure para guardar y entregar las imágenes. El servidor web es un proxy inverso nginx + cóctel gunicorn. Gzip está funcionando en mi sitio web. Además, para almacenar en caché los activos estáticos, tengo lo siguiente en mi archivo de configuración de nginx:

location ~* \.(?:ico|css|js|gif|jpe?g|png)$ { root /home/mhb11/project/myproject; expires 24h; add_header Vary Accept-Encoding; access_log off; }

Mi problema es que cuando pruebo mi sitio web con el complemento Google Page Speed, me dicen que ninguna de las imágenes que se muestran desde el almacenamiento de Azure se está almacenando en caché: ingrese la descripción de la imagen aquí

¿Qué hago para habilitar el almacenamiento en caché para estos? Por favor avise. Soy bastante nuevo en esto, por lo que cualquier ayuda en esta etapa será de gran ayuda. Gracias de antemano y que tengas un buen fin de semana.


Este es el def _savemétodo de mi clase de Almacenamiento personalizada que carga un blob:

def _save(self,name,content):
    blob_service = BlobService(account_name=accountName, account_key=accountKey)
    import mimetypes
    small_content = content
    content.open()
    content_type = None
    if hasattr(content.file, 'content_type'):
        content_type = content.file.content_type
    else:
        content_type = mimetypes.guess_type(name)[0]
    content_str = content.read()
    blob_service.put_blob(
        'pictures',
        name,
        content_str,
        x_ms_blob_type='BlockBlob',
        x_ms_blob_content_type=content_type
    )

¿Cómo configuro Cache-Control dentro de eso?

Respuesta1

Deberá configurar la información de la metaetiqueta "Control de caché" en Azure Storage/blob.

Utilizo AWS y allí puedo ir al activo específico (sus imágenes) y especificar esa información.

También; Debería poder especificar esta configuración si está utilizando algún tipo de API para cargar imágenes desde su aplicación.

información relacionada