Was ist ein Bild-Cache-Server?

Ein Bild-Cache-Server speichert zuvor angefragte Originalbilder oder transformierte Bilder nahe bei den Nutzern. Spätere Anfragen können die gespeicherte Antwort nutzen, statt die Datei erneut vom Origin-Server abzurufen oder ihre Transformation zu wiederholen.

So funktionieren Bild-Cache-Server

Ein Bild-Cache-Server ordnet eine Anfrageidentität gespeicherten Bildbytes und Antwortmetadaten zu und liefert das Ergebnis aus, ohne vorgelagerte Arbeit zu wiederholen. Er kann Originale, Varianten mit geänderter Größe oder beides zwischenspeichern, an einem regionalen Edge-Standort oder innerhalb des Transformationsdienstes. Aktualitätsregeln, Validatoren und explizite Invalidierung bestimmen, wann gespeicherte Inhalte wiederverwendet werden. Diese Schicht liegt zwischen Bild-URLs und dem Speicher des Origin-Servers, reduziert den Transformationsaufwand und verkürzt die Auslieferungswege.

Wichtige Fakten

  1. Speichert ein Bildtransformationsdienst seine eigenen Ergebnisse zwischen? Nicht unbedingt. Prüfen Sie das, bevor Sie davon ausgehen, dass wiederholte Anfragen wenig Aufwand verursachen. Der Maintainer von imgproxy hat erklärt, dass der Open-Source-Server bewusst kein Caching betreibt und dies CDNs und Cache-Servern überlässt; die Pro-Ausgabe dokumentiert einen optionalen internen Cache und bezeichnet ein vorgeschaltetes CDN weiterhin als bewährte Vorgehensweise. Die Bildtransformationen von Cloudflare speichern jedes transformierte Ergebnis am Edge zwischen und auch das Original, um spätere Transformationen derselben Quelle zu beschleunigen.
  2. Was muss in den Cache-Schlüssel? Alles, was die Bytes verändert: das Quellbild, jede Verarbeitungsoption und das Ausgabeformat. Daraus wird auch der interne Cache-Schlüssel von imgproxy gebildet. Wird das Format anhand des Anfrageheaders Accept statt anhand der URL gewählt, identifiziert die URL die Bytes nicht mehr eindeutig. Ein HTTP-Cache hält die Varianten dann nur auseinander, wenn die Antwort diesen Header in Vary nennt oder das CDN beziehungsweise der Caching-Proxy so konfiguriert ist, dass der Header in den Schlüssel eingeht. Entsprechende CDN-Funktionen haben Voraussetzungen: Vary for Images von Cloudflare ist in den Tarifen Pro, Business und Enterprise verfügbar und funktioniert nur, wenn der Origin-Server Vary: Accept sendet, die Bild-URL eine unterstützte Dateiendung im Pfad hat und die vom Origin-Server ausgelieferten Varianten konfiguriert sind; benutzerdefinierte Cache-Schlüssel, die Accept enthalten können, gibt es nur im Enterprise-Tarif. imgproxy warnt, dass Header nicht signiert werden können und ein Aufrufer deshalb den CDN-Cache durch eine Änderung von Accept umgehen kann.
  3. Was passiert, wenn ein Quellbild unter derselben URL ersetzt wird? Caches liefern weiterhin Varianten des alten Bildes aus, bis diese Einträge ablaufen oder invalidiert werden. Eine Cache-Löschung erreicht nur die Caches, an die sie gesendet wird. Eine neue URL für die geänderte Quelle vermeidet das Problem, weil für eine noch nie angefragte URL keine gespeicherte Antwort vorliegt. Muss der Dateiname gleich bleiben, kann stattdessen die URL der abgeleiteten Variante geändert werden: Die Option cachebuster von imgproxy beeinflusst die Verarbeitung nicht, und eine Änderung ihres Werts umgeht die Caches von CDN, Proxyserver und Browser. Das erzwingt eine neue Transformation, aktualisiert aber nicht die Quelle: Wird auch das Original unter seiner unveränderten URL zwischengespeichert, kann die neue Variante aus der alten Datei entstehen, bis dieser Eintrag abläuft, revalidiert oder gelöscht wird. Cloudflare erklärt beispielsweise, dass Anfragen für verschiedene Größen wahrscheinlich das zwischengespeicherte Original wiederverwenden. Der interne Cache von imgproxy bietet keine manuelle Invalidierung; sein Schlüssel enthält cachebuster, und die Dokumentation verweist außerdem auf den Ablauf von Objekten im Speicher-Backend.
  4. Was passiert, wenn viele Anfragen gleichzeitig dasselbe Bild anfordern, das noch nicht im Cache liegt? Wenn der Cache diese Anfragen nicht zusammenfasst, löst jede eine eigene Transformation aus. Das wird als Cache-Stampede bezeichnet. Für das Zusammenfassen gelten Bedingungen. Cloudflare fasst gleichzeitige Cache-Misses pro Rechenzentrum zusammen, sodass mehrere Standorte weiterhin jeweils eine Anfrage senden können. In NGINX ist proxy_cache_lock standardmäßig deaktiviert. Eine Anfrage, die länger als das Sperrzeitlimit wartet, wird an den vorgelagerten Server weitergeleitet, ohne dass ihre Antwort zwischengespeichert wird. Stellt sich bei Fastly heraus, dass die Antwort nicht zwischengespeichert werden kann, werden die wartenden Anfragen nacheinander an den Origin-Server gesendet.

Wann Bild-Cache-Server wichtig sind

Speichern Sie aufwendig erzeugte Bildvarianten mit Schlüsseln zwischen, die jeden Transformationsparameter und die relevante Quellversion enthalten. Ein unvollständiger Schlüssel kann zur Auslieferung des falschen Bildes führen, während eine zu kurze Speicherdauer die Last am Origin-Server und die Verarbeitungskosten erhöht.

So hilft Transloadit bei Bild-Cache-Servern

In Transloadits Smart CDN übernimmt der Robot /tlcdn/deliver den Bild-Cache. Er wird implizit für URLs vom Typ tlcdn.com verwendet: Er speichert jedes transformierte Ergebnis zwischen und liefert es nahe bei Ihren Nutzern aus. Der Robot /file/serve, der das Ergebnis eines Templates an das CDN übergibt, läuft nur, wenn das CDN keine zwischengespeicherte Kopie hat. Sein Parameter cache_duration legt fest, wie lange Browser und CDNs das Ergebnis behalten dürfen. Die Dokumentation zu /file/serve rät von einer Nutzung ohne vorgeschaltetes CDN ab, weil dann jede Anfrage eine neue Größenänderung auslösen würde.

Bei signierten URLs im Smart CDN wird die effektive Cache-Lebensdauer einer Antwort durch die verbleibende Gültigkeitsdauer der Signatur begrenzt. Die hier verlinkten Seiten beschreiben weder eine Cache-Löschung noch das Verhalten eines zwischengespeicherten Ergebnisses, wenn das Original unter unverändertem Dateipfad ersetzt wird. Testen Sie diesen Fall daher in Ihrem eigenen Workspace, bevor Sie sich darauf verlassen.

Entdecken Sie Transloadits Möglichkeiten zur Auslieferung

Quellen

Machen Sie aus Medienwissen eine funktionierende Pipeline

Verbinden Sie Uploads, Verarbeitung, KI, Storage und Auslieferung über eine deklarative API – um Encoding-Stack, Skalierung und ständig wechselnde Formate müssen Sie sich nicht selbst kümmern.

Transloadit kostenlos ausprobieren