¿Qué es un servidor de caché de imágenes?

Un servidor de caché de imágenes almacena imágenes de origen o transformadas que ya se han solicitado, cerca de quienes las consumen. Las solicitudes posteriores pueden usar la respuesta almacenada en lugar de recuperar el activo del origen o repetir su transformación.

Cómo funcionan los servidores de caché de imágenes

Un servidor de caché de imágenes asocia la identidad de una solicitud con los bytes de imagen y los metadatos de respuesta almacenados, y sirve el resultado sin repetir el trabajo de los componentes anteriores. Puede almacenar en caché originales, derivados redimensionados o ambos, en un nodo perimetral regional o dentro del servicio de transformación. Las reglas de vigencia, los validadores y la invalidación explícita determinan cuándo se reutiliza el contenido almacenado. Esta capa se sitúa entre las URL de las imágenes y el almacenamiento de origen, lo que reduce la carga de transformación y acorta las rutas de entrega.

Datos clave

  1. ¿Un servicio de transformación de imágenes almacena en caché sus propios resultados? No necesariamente, así que compruébalo antes de dar por sentado que las solicitudes repetidas tienen un costo bajo. El responsable de mantenimiento de imgproxy ha dicho que el servidor de código abierto no almacena nada en caché por diseño y deja esa tarea a las CDN y a los servidores de caché; su edición Pro documenta una caché interna opcional y sigue considerando una CDN delante de imgproxy como la práctica recomendada. Las transformaciones de imágenes de Cloudflare almacenan en caché cada resultado transformado en los nodos perimetrales y también el original para acelerar las transformaciones posteriores de la misma imagen de origen.
  2. ¿Qué debe incluir la clave de caché? Todo lo que cambie los bytes: la imagen de origen, cada opción de procesamiento y el formato de salida, que son los elementos con los que se construye la clave de caché interna de imgproxy. Cuando el formato se elige a partir del encabezado Accept de la solicitud en lugar de la URL, esta deja de identificar los bytes. En ese caso, una caché HTTP solo mantiene separadas las variantes si la respuesta nombra ese encabezado en Vary, o si la CDN o el proxy de caché están configurados para incluirlo en la clave. Las funciones de las CDN para ello tienen condiciones: Vary for Images de Cloudflare se ofrece en los planes Pro, Business y Enterprise y solo funciona cuando el origen envía Vary: Accept, la URL de la imagen tiene una extensión de archivo compatible en su ruta y se configuran las variantes que sirve el origen; sus claves de caché personalizadas, que pueden incluir Accept, solo están disponibles en Enterprise. imgproxy advierte que los encabezados no pueden firmarse, por lo que quien realiza la solicitud puede eludir la caché de la CDN cambiando Accept.
  3. ¿Qué ocurre cuando se reemplaza una imagen de origen manteniendo la misma URL? Las cachés siguen sirviendo derivados de la imagen anterior hasta que esas entradas vencen o se invalidan, y una purga solo alcanza las cachés a las que se envía. Asignar una nueva URL a una imagen de origen modificada evita el problema, porque una URL que no se ha solicitado antes no tiene ninguna respuesta almacenada. Si el nombre del archivo debe mantenerse, se puede cambiar la URL del derivado: la opción cachebuster de imgproxy no afecta al procesamiento, y cambiar su valor permite eludir las cachés de la CDN, del servidor proxy y del navegador. Eso obliga a realizar una nueva transformación, pero no actualiza la imagen de origen: si el original también está almacenado en caché bajo su URL sin cambios, el nuevo derivado puede generarse a partir del archivo anterior hasta que esa entrada venza, se revalide o se purgue. Cloudflare, por ejemplo, señala que es probable que las solicitudes de distintos tamaños reutilicen el original almacenado en su caché. La caché interna de imgproxy no tiene invalidación manual; su clave incluye cachebuster, y su documentación también remite al vencimiento de objetos en el backend de almacenamiento.
  4. ¿Qué ocurre cuando muchas solicitudes no encuentran en caché la misma imagen al mismo tiempo? A menos que la caché las agrupe, cada una desencadena su propia transformación, lo que se conoce como estampida de caché. La agrupación tiene condiciones. Cloudflare agrupa los fallos de caché concurrentes por centro de datos, por lo que varias ubicaciones aún pueden enviar una solicitud cada una. proxy_cache_lock de NGINX está desactivado de forma predeterminada, y una solicitud cuya espera supera el tiempo límite del bloqueo se transmite al servidor anterior sin que su respuesta se almacene en caché. En Fastly, si resulta que la respuesta no puede almacenarse en caché, las solicitudes en cola se envían al origen una tras otra.

Cuándo importan los servidores de caché de imágenes

Almacena en caché las variantes de imágenes cuyo procesamiento sea costoso, con claves que incluyan cada parámetro de transformación y la versión de origen pertinente. Una clave incompleta puede hacer que se sirva la imagen equivocada, mientras que un período de retención demasiado corto aumenta la carga del origen y el costo de procesamiento.

Cómo ayuda Transloadit con los servidores de caché de imágenes

En el Smart CDN de Transloadit, la caché de imágenes es el Robot /tlcdn/deliver, que se usa implícitamente para las URL de tlcdn.com: almacena en caché cada resultado transformado y lo entrega cerca de tus usuarios. El Robot /file/serve, que entrega el resultado de un Template a la CDN, solo se ejecuta cuando la CDN no tiene una copia en caché, y su parámetro cache_duration establece cuánto tiempo pueden conservar el resultado los navegadores y las CDN. La documentación de /file/serve desaconseja usarlo sin la CDN delante, porque entonces cada solicitud generaría un nuevo cambio de tamaño.

Para las URL firmadas de Smart CDN, el tiempo de vida efectivo de una respuesta en caché está limitado por el tiempo de vida restante de la firma. Las páginas enlazadas aquí no describen una operación de purga ni qué ocurre con un resultado almacenado en caché cuando se reemplaza el original manteniendo la misma ruta de archivo, así que prueba ese caso en tu propio Workspace antes de depender de ese comportamiento.

Explora las capacidades de entrega de Transloadit

Fuentes

Convierte tus conocimientos sobre multimedia en un pipeline funcional

Conecta las subidas, el procesamiento, la IA, el almacenamiento y la entrega mediante una sola API declarativa, mientras nos encargamos por ti del stack de encoding, el escalado y los cambios constantes de formatos.

Prueba Transloadit gratis