Qu’est-ce qu’un serveur de cache d’images ?

Un serveur de cache d’images stocke des images sources ou transformées déjà demandées à proximité des clients qui les utilisent. Les requêtes ultérieures peuvent utiliser la réponse stockée au lieu de récupérer la ressource à l’origine ou de répéter sa transformation.

Fonctionnement des serveurs de cache d’images

Un serveur de cache d’images associe l’identité d’une requête aux octets d’image et aux métadonnées de réponse stockés, puis sert le résultat sans répéter le travail en amont. Il peut mettre en cache les originaux, les versions redimensionnées ou les deux, sur un site périphérique régional ou au sein du service de transformation. Les règles de fraîcheur, les validateurs et l’invalidation explicite déterminent quand le contenu stocké est réutilisé. Cette couche se situe entre les URL d’images et le stockage d’origine, ce qui réduit la charge de transformation et raccourcit les chemins de diffusion.

Points clés

  1. Un service de transformation d’images met-il ses propres résultats en cache ? Pas nécessairement ; vérifiez donc ce point avant de supposer que les requêtes répétées sont peu coûteuses. La personne responsable de la maintenance d’imgproxy a indiqué que, par conception, le serveur open source n’effectue aucune mise en cache et laisse ce rôle aux CDN et aux serveurs de cache ; son édition Pro documente un cache interne facultatif et présente toujours le placement d’un CDN devant imgproxy comme la bonne pratique. Les transformations d’images de Cloudflare mettent chaque résultat transformé en cache en périphérie et mettent également l’original en cache pour accélérer les transformations ultérieures de la même source.
  2. Que doit contenir la clé de cache ? Tout ce qui modifie les octets : l’image source, chaque option de traitement et le format de sortie, éléments à partir desquels la clé du cache interne d’imgproxy est construite. Lorsque le format est choisi à partir de l’en-tête Accept de la requête plutôt que de l’URL, cette dernière n’identifie plus les octets. Un cache HTTP ne distingue alors les variantes que si la réponse mentionne cet en-tête dans Vary, ou si le CDN ou le proxy de cache est configuré pour l’inclure dans sa clé. Les fonctionnalités des CDN prévues à cet effet sont soumises à conditions : Vary for Images de Cloudflare est proposé avec les forfaits Pro, Business et Enterprise et fonctionne uniquement lorsque l’origine envoie Vary: Accept, que le chemin de l’URL de l’image comporte une extension de fichier prise en charge et que les variantes servies par l’origine sont configurées ; ses clés de cache personnalisées, qui peuvent inclure Accept, sont réservées au forfait Enterprise. imgproxy avertit que les en-têtes ne peuvent pas être signés ; un appelant peut donc contourner le cache du CDN en modifiant Accept.
  3. Que se passe-t-il lorsqu’une image source est remplacée à la même URL ? Les caches continuent de servir les versions dérivées de l’ancienne image jusqu’à l’expiration ou à l’invalidation de ces entrées, et une purge n’atteint que les caches auxquels elle est envoyée. Attribuer une nouvelle URL à une source modifiée évite le problème, car aucune réponse n’est stockée pour une URL qui n’a jamais été demandée. Si le nom de fichier doit rester identique, l’URL de la version dérivée peut changer à la place : l’option cachebuster d’imgproxy n’a aucun effet sur le traitement, et modifier sa valeur contourne les caches du CDN, du serveur proxy et du navigateur. Cela impose une nouvelle transformation, mais n’actualise pas la source : si l’original est lui aussi en cache sous son URL inchangée, la nouvelle version dérivée peut être créée à partir de l’ancien fichier jusqu’à l’expiration, à la revalidation ou à la purge de cette entrée. Cloudflare indique par exemple que les requêtes portant sur différentes tailles sont susceptibles de réutiliser son original en cache. Le cache interne d’imgproxy ne dispose pas d’invalidation manuelle ; sa clé inclut cachebuster, et sa documentation renvoie également à l’expiration des objets dans le système de stockage sous-jacent.
  4. Que se passe-t-il lorsque de nombreuses requêtes ne trouvent pas simultanément la même image dans le cache ? À moins que le cache ne les regroupe, chacune déclenche sa propre transformation, un phénomène appelé ruée sur le cache. Le regroupement est soumis à conditions. Cloudflare regroupe les requêtes simultanées sans résultat en cache par centre de données ; plusieurs sites peuvent donc encore envoyer chacun une requête. La directive proxy_cache_lock de NGINX est désactivée par défaut, et une requête dont l’attente dépasse le délai du verrou est transmise en amont sans que sa réponse soit mise en cache. Sur Fastly, si la réponse s’avère impossible à mettre en cache, les requêtes en attente sont envoyées à l’origine les unes après les autres.

Quand les serveurs de cache d’images sont utiles

Mettez en cache les variantes d’images coûteuses à produire avec des clés qui incluent chaque paramètre de transformation et la version pertinente de la source. Une clé incomplète peut conduire à servir la mauvaise image, tandis qu’une durée de conservation trop courte augmente la charge de l’origine et le coût du traitement.

Comment Transloadit aide à utiliser les serveurs de cache d’images

Dans le Smart CDN de Transloadit, le cache d’images est le Robot /tlcdn/deliver, utilisé implicitement pour les URL tlcdn.com : il met en cache chaque résultat transformé et le diffuse à proximité de vos utilisateurs. Le Robot /file/serve, qui transmet le résultat d’un Template au CDN, s’exécute uniquement lorsque le CDN ne dispose d’aucune copie en cache, et son paramètre cache_duration définit la durée pendant laquelle les navigateurs et les CDN peuvent conserver le résultat. La documentation relative à /file/serve déconseille d’utiliser ce Robot sans CDN en amont, car chaque requête entraînerait alors un nouveau redimensionnement.

Pour les URL signées du Smart CDN, la durée effective de mise en cache d’une réponse est limitée par la durée de validité restante de la signature. Les pages liées ici ne décrivent ni opération de purge ni comportement du résultat en cache lorsque l’original est remplacé sans changement de chemin de fichier ; testez donc ce cas sur votre propre Workspace avant de vous y fier.

Explorer les capacités de diffusion de Transloadit

Références

Transformer vos connaissances sur les médias en une chaîne de traitement opérationnelle

Reliez les téléversements, le traitement, l’IA, le stockage et la diffusion via une seule API déclarative — la pile d’encodage, la montée en charge et l’évolution constante des formats sont prises en charge pour vous.

Essayer Transloadit gratuitement