Skip to content

Cache

smoxy bietet eine CDN-Caching-Schicht, die Kopien der Inhalte am Edge speichert. Diese Anleitung behandelt die für die Zone verfügbare Caching-Konfiguration -- Caching-Verhalten, TTL, Cache-Key-Zusammensetzung, Cache-Tags, Edge-Verarbeitung und Stale-Cache-Verhalten. Wo die Cache-Entscheidung im gesamten Anfrageablauf steht, zeigt der Lebenszyklus einer Anfrage.

Cache-Konfiguration: Verhalten, TTL, Cache-Key, Tags und Stale-Verhalten.Cache-Konfiguration: Verhalten, TTL, Cache-Key, Tags und Stale-Verhalten.
Cache-Konfiguration: Verhalten, TTL, Cache-Key, Tags und Stale-Verhalten.

Dynamischer Cache

Der Schalter Dynamischer Cache aktiviert das Caching der text/html-Antworten der Zone auf den Edge-Servern von smoxy, was die Origin-Last reduziert und die Performance verbessert. Statische Assets werden unabhängig von dieser Einstellung gecacht.

Die Karte „Dynamischer Cache“ aktiviert HTML-Caching für die Zone.Die Karte „Dynamischer Cache“ aktiviert HTML-Caching für die Zone.
Die Karte „Dynamischer Cache“ aktiviert HTML-Caching für die Zone.

Gut geeignet für HTML-Caching: Produkt- und Kategorieseiten, Blogbeiträge, Landingpages, Dokumentation -- jede Seite, deren HTML sich nicht pro Besucher ändert. Nicht geeignet: personalisierte Seiten (Benutzer-Dashboards, Warenkörbe), Seiten mit Echtzeitdaten und dynamische API-Antworten. Für gemischte Seiten (z. B. eine Produktseite mit personalisiertem Warenkorb-Widget) können SSI/ESI die statischen Teile getrennt von den dynamischen Fragmenten cachen.

Ändert sich der HTML-Inhalt, sollte der Cache invalidiert werden, damit Besucher die aktuelle Version sehen (Cache-Invalidierung). Die konfigurierte TTL gilt für HTML wie für alle anderen gecachten Inhalte; variiert das HTML nach Cookie (Sprache, Login-Status), sollte die Cookie-Komponente entsprechend konfiguriert werden. Eine Steuerung pro Anfrage -- Caching nur für bestimmte Pfade oder keines für eingeloggte Benutzer -- ist über Conditional Rules möglich.


Cache-Control berücksichtigen

Der Schalter Origin-Cache-Control berücksichtigen -- standardmäßig aktiviert -- überlässt dem Origin die Steuerung des Cachings pro Antwort über dessen Cache-Control-Header. Wenn aktiviert, cacht smoxy keine Antworten, die mit no-cache, private oder max-age=0 gekennzeichnet sind, sodass diese Anfragen weiterhin den Origin erreichen.

s-maxage hat Vorrang. Als Shared Cache wertet smoxy die s-maxage-Direktive vor max-age aus. Eine Antwort mit Cache-Control: max-age=0, s-maxage=3600 wird daher gecacht -- max-age=0 untersagt nur dem Browser das Caching, während s-maxage>0 Proxy-Caches wie smoxy das Speichern ausdrücklich erlaubt. Nur ohne positives s-maxage führt max-age=0 zu einem Bypass. Diese Kombination ist in Frameworks üblich, die Browser- und Proxy-Caching trennen, etwa Shopware 6 oder Symfony HttpCache.

EinstellungStandard
Origin-Cache-Control berücksichtigenAktiviert

Wenn deaktiviert, verwendet smoxy die konfigurierte TTL für alle cachebaren Antworten, unabhängig vom Cache-Control-Header des Origins.


Cache-TTL (Time-to-Live)

Die Standard-TTL bestimmt, wie lange smoxy die Inhalte zwischenspeichert, bevor eine frische Kopie vom Origin-Server angefordert wird. Es handelt sich um ein Dropdown mit festen Vorgaben:

5 Minuten · 15 Minuten · 30 Minuten · 1 Stunde · 6 Stunden · 12 Stunden · 1 Tag · 2 Tage · 3 Tage · 7 Tage

Der Standard ist 7 Tage (604.800 Sekunden).


Cache-Key

Der Cache-Key bestimmt, wie smoxy eindeutige gecachte Antworten identifiziert. Zwei Anfragen mit demselben Cache-Key liefern denselben gecachten Inhalt. Das Verständnis des Cache-Keys ist wichtig, um zu vermeiden, dass veralteter oder falscher Inhalt ausgeliefert wird.

Die Cache-Key-Karte: welche Anfrageeigenschaften zum Key beitragen.Die Cache-Key-Karte: welche Anfrageeigenschaften zum Key beitragen.
Die Cache-Key-Karte: welche Anfrageeigenschaften zum Key beitragen.

Komponenten

Standardmäßig wird der Cache-Key aus der Request-URI und dem Query-String gebildet. Zwei optionale Komponenten lassen sich ergänzen -- beide standardmäßig deaktiviert:

KomponenteSteuerungStandardBeschreibung
Request-URIImmer enthalten--Der Anfragepfad ist immer Teil des Cache-Keys
Request-HostnameSchalterDeaktiviertBezieht den Anfrage-Hostnamen ein, sodass verschiedene Hostnamen getrennt cachen
Cookie-WertSchalterDeaktiviertVariiert den Cache anhand bestimmter Cookie-Werte

Request-Hostname

Wenn Request-Hostname aktiviert ist, erzeugen Anfragen an verschiedene Hostnamen auf derselben Zone separate Cache-Einträge. Dies ist wichtig, wenn mehrere Hostnamen auf derselben Zone unterschiedliche Inhalte für denselben Pfad ausliefern.

Beispiel: Mit dieser Aktivierung werden www.example.com/about und shop.example.com/about separat gecacht.

Wenn Cookie-Wert aktiviert ist, bezieht smoxy bestimmte Cookie-Werte in den Cache-Key ein. Dies ist nützlich, um unterschiedliche Inhalte basierend auf Benutzereinstellungen wie Sprache oder Region auszuliefern.

Welche Cookies variiert werden, lässt sich unter Cookie-Namenswerte angeben -- eine Liste von Cookie-Namen.

Beispiel: Wird auf language variiert, erhalten ein Besucher mit language=en und ein Besucher mit language=de separat gecachte Antworten.

Ausgeschlossene Query-Parameter

Standardmäßig ist der vollständige Query-String Teil des Cache-Keys. Bestimmte Query-Parameter lassen sich ausschließen, die das Caching nicht beeinflussen sollen -- typischerweise Tracking-Parameter, die den Seiteninhalt nicht verändern.

Konfiguriert wird eine kommagetrennte Liste von Parameternamen zum Ausschließen.

Häufige Ausschlüsse: utm_source, utm_medium, utm_campaign, utm_content, utm_term, gclid, fbclid

Parameternamensregeln: Nur alphanumerische Zeichen und Bindestriche sind erlaubt.


Cache-Tags

Cache-Tags ermöglichen es, gecachte Inhalte zu gruppieren und selektiv zu invalidieren. Der Origin-Server sendet Cache-Tag-Werte in HTTP-Response-Headern, und smoxy verwendet diese, um gecachte Inhalte mit Tags zu verknüpfen. Beim Purgen eines Tags werden alle damit verknüpften gecachten Inhalte invalidiert.

Die Karte zur Cache-Key-Anpassung: ignorierte URL-Parameter, ignorierte Cache-Tags und benutzerdefinierte Cache-Tag-Header.Die Karte zur Cache-Key-Anpassung: ignorierte URL-Parameter, ignorierte Cache-Tags und benutzerdefinierte Cache-Tag-Header.
Die Karte zur Cache-Key-Anpassung: ignorierte URL-Parameter, ignorierte Cache-Tags und benutzerdefinierte Cache-Tag-Header.

Konfiguration

Es lassen sich bis zu 4 Cache-Tag-Header konfigurieren. Jeder Header hat einen Namen und ein Trennzeichen.

EinstellungBeschreibung
Header-NameDer HTTP-Response-Header, der die Tag-Werte enthält
TrennzeichenDas Zeichen, das mehrere Tags innerhalb des Headers trennt -- eines von Leerzeichen, ,, ; oder |

Header-Namensregeln: Nur alphanumerische Zeichen und Bindestriche sind erlaubt.

Standards

smoxy ist mit zwei Cache-Tag-Headern vorkonfiguriert:

HeaderTrennzeichenBeispiel
x-cache-tags, (Komma)x-cache-tags: product-123,category-shoes
xkey(Leerzeichen)xkey: product-123 category-shoes

Diese Standards decken die gängigsten Cache-Tagging-Konventionen ab. Eine Anpassung nach Bedarf oder das Hinzufügen weiterer Header ist möglich.

Cache-Tag-Ignorier-Liste

Eine Liste von Tag-Mustern lässt sich konfigurieren, die ignoriert werden sollen. Tags, die diesen Mustern entsprechen, werden nicht gespeichert, was den Cache-Metadaten-Overhead für Tags reduziert, die nie invalidiert werden sollen.

Einzugeben ist eine kommagetrennte Liste von Tag-Namen oder -Mustern.

Erlaubte Zeichen: Alphanumerisch, Klammern, geschweifte Klammern, eckige Klammern, Bindestriche, Unterstriche, Punkte, Schrägstriche und Sternchen.


SSI & ESI

smoxy unterstützt Server Side Includes (SSI) und Edge Side Includes (ESI) zum Zusammensetzen von Seiten aus mehreren Fragmenten am Edge.

FeatureBeschreibung
SSIVerarbeitet <!--#include -->-Direktiven in HTML-Antworten
ESIVerarbeitet <esi:include>-Tags für Edge-seitiges Seitenzusammensetzen

INFO

Hinweis: ESI kann nur aktiviert werden, wenn SSI ebenfalls aktiviert ist.

Diese Features sind nützlich für Sites, die Seiten aus cachebaren Fragmenten mit unterschiedlichen TTLs zusammensetzen (z. B. ein statischer Header der stundenlang gecacht wird und ein dynamisches Warenkorb-Widget das sekündlich gecacht wird).


Stale-Cache

Die Stale-Cache-Steuerung erlaubt es smoxy, veraltete Inhalte aus dem CDN-Cache auszuliefern, statt zu scheitern oder auf den Origin zu warten. Zwei unabhängige Schalter:

SchalterVerhalten
Bei NichterreichbarkeitLiefert gecachte Inhalte aus, wenn der Origin nicht erreichbar ist
Während der AktualisierungLiefert gecachte Inhalte aus, während im Hintergrund eine frische Kopie geholt wird

INFO

Hinweis: Stale-Cache ist nur mit CDN verfügbar.


Fehlerantworten cachen

Wenn aktiviert, werden Fehlerantworten (HTTP 300+) des Origins kurz gecacht -- etwa 5 Sekunden --, um ihn vor wiederholten Upstream-Ausfällen zu schützen.

INFO

Hinweis: Das Cachen von Fehlerantworten ist nur mit CDN verfügbar.


Purge-Token

Jede Zone verfügt über ein automatisch generiertes Purge-Token, das Anfragen zur Cache-Invalidierung (Purge) an die API von smoxy authentifiziert. Es wird auf der Cache-Seite angezeigt und kann nicht manuell gesetzt werden. Es wird in den Purge-Anfragen mitgesendet, um sie zu autorisieren.

Siehe Cache-Invalidierung zum Senden von Purge-Anfragen.


Der s-cache Response-Header

Wenn Dynamischer Cache oder Optimierung aktiviert ist, fügt smoxy jeder Antwort einen s-cache-Response-Header hinzu, der mitteilt, wie die Anfrage bedient wurde. Er dient zum Debuggen der Cache-Trefferrate, zur Überprüfung des Regelverhaltens und zur Bestätigung, dass die Cache-Control-Direktiven des Origins respektiert werden.

HIT

Die Ressource wurde im Cache von smoxy gefunden und direkt vom Edge ausgeliefert - keine Origin-Anfrage.

MISS

Die Ressource war nicht im Cache und wurde vom Origin geholt. Um zu verhindern, dass Browser die Miss-Antwort cachen, setzt smoxy cache-control: no-cache, no-store, must-revalidate auf der Antwort - das garantiert, dass die nächste Anfrage als HIT bedient werden kann, sobald smoxy den Inhalt gespeichert hat.

BYPASS

smoxy hat den Cache absichtlich übersprungen. Dies passiert, wenn:

  • Origin-Cache-Control berücksichtigen aktiviert ist und der Origin Cache-Control: no-cache, private oder max-age=0 ohne positives s-maxage zurückgegeben hat -- ist s-maxage>0 vorhanden, wird die Antwort stattdessen gecacht (siehe Cache-Control berücksichtigen).
  • Die Anfrage einen http-bypass-Header mit einem gültigen Token oder einer base64-kodierten Form des Hostnamens trug.
  • Der Content-Type der Antwort nicht für Caching geeignet ist (siehe Unterstützte MIME-Typen).

Wichtige Hinweise

  • TTL-Abwägung: Eine längere TTL bedeutet weniger Origin-Traffic, aber langsamere Content-Aktualisierungen. Eine kürzere TTL bedeutet frischeren Inhalt, aber mehr Origin-Anfragen. Die Wahl richtet sich danach, wie häufig sich der Inhalt ändert.
  • Auf Cookies mit Bedacht variieren: Nur auf Cookies variieren, die tatsächlich den Antwortinhalt beeinflussen. Das Variieren auf Session-IDs oder Tracking-Cookies deaktiviert das Caching effektiv, da jeder Besucher einen einzigartigen Cache-Eintrag erhält.
  • Tracking-Parameter ausschließen: Marketing-Parameter wie UTM-Tags ändern den Seiteninhalt nicht. Das Ausschließen aus dem Cache-Key verbessert die Cache-Trefferrate erheblich.
  • Cache-Tags erfordern Origin-Kooperation: Der Origin-Server muss die konfigurierten Tag-Header in seinen Antworten senden. smoxy liest diese Header und speichert die Verknüpfung - es generiert keine Tags automatisch.