Erweitertes Caching
smoxy bietet eine CDN-Caching-Schicht, die Kopien der Inhalte am Edge speichert. Diese Anleitung behandelt alle verfügbaren Caching-Konfigurationsoptionen für die Site, einschließlich TTL, Cache-Key-Zusammensetzung, Cache-Tags und Stale-Cache-Verhalten.
Cache-TTL (Time-to-Live)
Die Cache-TTL bestimmt, wie lange smoxy die Inhalte zwischenspeichert, bevor eine frische Kopie vom Origin-Server angefordert wird.
| Einstellung | Wert |
|---|---|
| Minimum | 300 Sekunden (5 Minuten) |
| Maximum | 604.800 Sekunden (7 Tage) |
| Standard | 604.800 Sekunden (7 Tage) |
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.
Komponenten
| Komponente | Einstellung | Standard | Beschreibung |
|---|---|---|---|
| URI | Immer enthalten | — | Der Anfragepfad ist immer Teil des Cache-Keys |
| Host | host_vary_enabled | Aus Konfiguration abgeleitet | Den Anfrage-Hostnamen in den Cache-Key einbeziehen |
| Cookie | cookie_vary_enabled | Aktiviert | Cache basierend auf bestimmten Cookie-Werten variieren |
Host Vary
Wenn Host Vary aktiviert ist, erzeugen Anfragen an verschiedene Hostnamen auf derselben Site separate Cache-Einträge. Dies ist wichtig, wenn mehrere Hostnamen auf derselben Site unterschiedliche Inhalte für denselben Pfad ausliefern.
Beispiel: Mit aktiviertem Host Vary werden www.example.com/about und shop.example.com/about separat gecacht.
Cookie Vary
Wenn Cookie Vary 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 über Cookie-Parameternamen angeben — eine kommagetrennte Liste von Cookie-Namen.
Beispiel: Wird der Cookie-Vary-Parameter auf language gesetzt, erhalten ein Besucher mit language=en und ein Besucher mit language=de separat gecachte Antworten.
Cookie-Namensregeln: In Cookie-Namen sind nur alphanumerische Zeichen, Bindestriche und Unterstriche erlaubt.
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.
Konfiguration
Es lassen sich bis zu 4 Cache-Tag-Header konfigurieren. Jeder Header hat einen Namen und ein Trennzeichen.
| Einstellung | Beschreibung |
|---|---|
| Header-Name | Der HTTP-Response-Header, der die Tag-Werte enthält |
| Trennzeichen | Das Zeichen, das mehrere Tags innerhalb des Headers trennt (einzelnes Zeichen) |
Header-Namensregeln: Nur alphanumerische Zeichen und Bindestriche sind erlaubt.
Standards
smoxy ist mit zwei Cache-Tag-Headern vorkonfiguriert:
| Header | Trennzeichen | Beispiel |
|---|---|---|
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.
Cache-Control-Header
Wenn aktiviert, respektiert smoxy den Cache-Control-Header aus der Antwort des Origin-Servers. Dies ermöglicht es dem Origin, das Caching-Verhalten pro Antwort zu steuern.
| Einstellung | Standard |
|---|---|
cache_control_header_enabled | Deaktiviert |
Wenn deaktiviert, verwendet smoxy die konfigurierte TTL für alle cachebaren Antworten, unabhängig vom Cache-Control-Header des Origins.
Der s-cache Response-Header
Wenn Acceleration oder Bildoptimierung 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:
- Die Option Cache-Control-Header aktiviert ist und der Origin
Cache-Control: no-cache,privateodermax-age=0zurückgegeben hat. - 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.
- Cookie Vary mit Bedacht: 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.
