Wie Sie Ihren CDN-Cache reinigen (und wann Sie eigentlich sollten)
Purging ist die große rote Taste von CDNs: es löscht den Cache, so dass Änderungen jetzt erscheinen. Nützlich, gelegentlich notwendig und leicht zu überbenutzen — oft als Ersatz für die Lösung des eigentlichen Problems.
Jedes CDN hat einen Spülknopf und jedes Team entwickelt schließlich eine etwas ungesunde Beziehung zu ihm. Es beginnt als legitimes Werkzeug, um eine Korrektur live zu drücken. Es wird, über ein oder zwei Jahre, etwas, das Menschen reflexiv klicken, wenn etwas falsch aussieht, weil es die eine Kontrolle ist, die jeder versteht.
Das ist eine Schande, denn eine Website, die häufige Reinigung benötigt, ist in der Regel eine Website mit einem fixierbaren Konfigurationsproblem, und die Reinigung ist es maskieren.
Was eine Säuberung wirklich tut
Purging entfernt ein zwischengespeichertes Objekt, so dass die nächste Anfrage für es wird ein Cache fehlt. Die Kante holt dann eine frische Kopie von Ihrem Ursprung, serviert sie und speichert sie für das nächste Mal.
Beachten Sie die Konsequenz: Jedes gereinigte Objekt ist in naher Zukunft eine garantierte Ursprungsanforderung. Spülen Sie eine URL und das ist eine Anfrage. Säubern Sie alles auf einer geschäftigen Website und Sie haben gerade eine sehr große Anzahl von gleichzeitigen Ursprungsanfragen geplant, in welchem Moment auch immer Ihr Verkehr als nächstes kommt.
Die vier Arten von Säuberung
| Art | Was es frei macht | Auswirkung auf den Ursprung | Verwendung bei |
|---|---|---|---|
| Einzel-URL | Ein genaues Objekt | Vernachlässigbar | Du hast eine Seite geändert |
| Präfix / Platzhalter | Alles unter einem Pfad | Verhältnismäßigkeit | Ein ganzer Abschnitt hat sich geändert |
| Tag des Caches | Jedes Objekt mit einem Tag | Proportional und präzise | Eine Einheit erscheint auf vielen Seiten |
| Alles | Der gesamte Cache | Schwere | Echte Notfälle |
Cache-Tags sind die, die es wert, einrichten
Das Problem beim URL-basierten Spülen ist, dass Inhalt nicht ordentlich zu URLs kartiert. Wechseln Sie den Preis eines Produkts und das Produkt erscheint auf seiner eigenen Seite, drei Kategorien Seiten, die Homepage Karussell, zwei Sammlung Seiten und ein Suchergebnis. Die Reinigung "der Produktseite" hinterlässt fünf verharmlose Preise.
Cache-Tags lösen das. Ihre Herkunft heftet Tags an jede Antwort an — eine Produktseite könnte tragen product-8842, category-boots, brand-acme — und das CDN indexiert Objekte nach Tag. Wenn sich das Produkt ändert, reinigen Sie das Tag product-8842 und jede Seite, die sie trägt, wird sofort ungültig, wo immer sie lebt.
Dies dauert einen Nachmittag, um zu verkabeln und beseitigt die meisten der Gründe, die Menschen für Purge-all erreichen. Wenn Sie einen Shop oder einen Publisher mit einem echten Content Graphen betreiben, ist es die höchste Stunde in diesem Artikel.
Warum purge-all mehr schmerzt, als es aussieht
Leeren des gesamten Caches bedeutet, dass jede nachfolgende Anforderung ein Fehltritt ist, bis der Cache wieder auffüllt. Auf einer ruhigen Seite, die in Ordnung ist. Auf einem beschäftigten ein, drei Dinge auf einmal passieren.
Ihre Herkunft erhält eZwischenspeicher gestempeltzende oder Hunderte identischer gleichzeitiger Anfragen für eine Seite, weil die erste Antwort nicht gekommen ist, um die Cache noch nicht.
Gute CDNs mildern das letzte durch das Zusammenklappen von gleichzeitigen Fehltritten für das gleiche Objekt in eine einzige Ursprungsanforderung. Es lohnt sich, das zu bestätigen, denn es ist der Unterschied zwischen einer Säuberung, die eine Klippe ist, und einer Säuberung, die ein Zwischenfall ist.
Wenn Sie alles auf einer hochfrequenten Seite säubern müssen, tun Sie es zu Ihrer leisesten Stunde und wärmen Sie den Cache danach, indem Sie Ihre oberen URLs kriechen. Zehn Minuten des Kriechens Ihrer eigenen Sitemap ist viel billiger als eine Stunde von echten Besuchern, die jeder für eine Miss zahlen.
Weiche Reinigung
Eine Verfeinerung, die es wert ist, darüber zu wissen. Eine harte Säuberung löscht das Objekt. A Weichspülung markiert es statt dessen veralten und lässt es im Cache liegen.Wenn also der Ursprung langsam oder nicht verfügbar ist, kann der Rand die veraltete Kopie noch bedienen, während sie sich revalidiert, anstatt überhaupt nichts zu haben.
Für Inhalte, bei denen eine etwas veraltete Version besser ist als eine Fehlerseite, die am meisten Inhalt ist, ist Soft Purging die sicherere Standardeinstellung. Reserviert harte Säuberungen für Dinge, die wirklich nie wieder bedient werden dürfen — eine Seite mit falschen Preisen oder Inhalte aus rechtlichen Gründen zurückgezogen.
Wenn Sie reinigen sollten
Inhalt geändert und die Änderung ist zeitsensibel
Ein korrigierter Preis, ein veröffentlichter Artikel, ein zurückgezogenes Produkt. Löscht die URL oder das Tag.
Irgendwas stimmt nicht
Eine Fehlerseite, eine halbgerenderte Antwort, eine Seite, die mit der falschen Währung zwischengespeichert wurde. Säubern Sie es, dann beheben Sie den Grund, warum es zwischengespeichert war.
Sie haben etwas implementiert, das die gemeinsame Ausgabe verändert
Eine Änderung der Vorlage, die jede Seite betrifft. Dies ist einer der wenigen legitimen breiten Säuberungen – und Cache-Tags lassen Sie es erfassen.
Wenn Sie nicht
- Nach dem Einsatz von Fingerabdrücken. Neuer Inhalt bedeutet einen neuen Dateinamen, ein neuer Cache-Schlüssel. Es gibt nichts zu reinigen.
- Als Debugging-Schritt. Sie versuchen zu sehen, ob es hilft, die Beweise zu zerstören und sagt Ihnen sehr wenig.
- Nach einem Zeitplan. Ein Cron-Job, der den Cache nachts säubert, ist ein TTL, das auf die teuerste Art und Weise ausgedrückt wird. Stellen Sie stattdessen die TTL ein.
- Weil Sie sich nicht sicher sind. Überprüfung der
AgeundCache-ControlKopfzeilen zuerst. Die meisten "the cache is stale"-Berichte erweisen sich als Browser-Cache, der das Löschen des CDNs nichts ausmacht.
Der letzte verdient Nachdruck, denn er macht eine Menge unnötiger Reinigungen aus. Wenn der Browser eines Besuchers eine Seite eine Stunde lang zwischengespeichert hat, wird das Löschen des CDN ihnen nicht helfen — sie fragen das CDN nicht. Genau deshalb s-maxage existiert: halten Browser-Lebensdauern kurz und Kantenleben lang, so dass das Reinigen tatsächlich wirksam ist, wenn Sie es tun.
Häufig gestellte Fragen
Was macht die Reinigung eines CDN-Caches?
Purging entfernt zwischengespeicherte Objekte aus dem CDN, so dass die nächste Anfrage für sie frisch von Ihrem Ursprung abgeholt werden muss. Es ist, wie Sie ein Update zwingen, sofort erscheinen, anstatt zu warten, bis die zwischengespeicherte Kopie TTL abläuft. Jedes gesäuberte Objekt führt zu mindestens einem späteren Ursprungswunsch.
Wie oft soll ich meinen CDN-Cache reinigen?
Selten und nur als Reaktion auf eine bestimmte Veränderung. Häufige Reinigung zeigt in der Regel TTLs, die falsch gesetzt werden oder Assets, die keine Inhalte hashes in ihren Dateinamen - die Reinigung ist Kompensation für ein Konfigurationsproblem statt eine Lösung. Geplante Säuberungen sind besonders verschwenderisch, da ein TTL dasselbe erreicht, ohne den Cache zu leeren.
Ist das Säubern des gesamten Caches schlecht?
Auf einer belebten Seite, ja. Jede nachfolgende Anfrage wird zu einem Cache-Vermissen, bis der Cache wieder auffüllt, was Ihrem Ursprung ein plötzliches Vielfaches seiner normalen Last sendet und einen Cache-Stempel auslösen kann, bei dem viele identische gleichzeitige Anfragen für die gleiches uncached Objekt. Bevorzugen Sie die Reinigung durch URL oder Cache-Tag, und wenn eine vollständige Säuberung unvermeidlich ist, tun Sie es während ruhiger Stunden und erwärmen Sie den Cache danach.
Was sind Cache-Tags und warum verwenden Sie sie?
Cache-Tags sind Labels, die Ihre Herkunft an Antworten bindet, so dass das CDN zwischengespeicherte Objekte nach Entity und nicht nur nach URL indexieren kann. Eine Produktseite könnte mit ihrer Produkt-ID, Kategorie und Marke markiert werden, und jede Seite, die dieses Produkt trägt, trägt auch das Tag. Das Ändern des Produkts erfordert dann die Reinigung eines Tags anstatt Jagd nach jeder URL, wo es erscheint.
Muss ich nach dem Einsatz neuer CSS oder JavaScript reinigen?
Nicht, wenn Ihr Build printprinted Dateinamen wie app.a1b2c3.css erzeugt. Eine Änderung der Datei erzeugt einen neuen Dateinamen und somit einen neuen Cache-Schlüssel, so dass der alte Eintrag einfach nie wieder angefordert wird und allein abläuft. Die Säuberung ist nur für unter einem stabilen Dateinamen bediente Vermögenswerte erforderlich.
Warum sehe ich nach der Reinigung des CDN immer noch alte Inhalte?
Meistens, weil die veraltete Kopie in Ihrem Browser ist, nicht das CDN, und die Reinigung eines CDN kann es nicht erreichen. Überprüfen Sie mit einem harten laden oder einem privaten Fenster. Deshalb sollte HTML ein kurzes max-age neben einem langen s-maxage tragen — Browser halten es kurz, während der Rand hält es lange — da ein CDN gesäubert werden kann und ein Browser nicht kann.
Purge per URL oder besser per Cache-Tag; purge-all für Notfälle aufbewahren und danach den Cache erwärmen. Bevorzugen Sie weiche reinigt, so dass eine veraltete Kopie verfügbar bleibt, wenn der Ursprung kämpft. Und wenn Sie häufig säubern, behandeln Sie das als ein Signal, um Ihre TTLs zu beheben und Content-Hashes zu Dateinamen hinzuzufügen – ein Cache, den Sie babysit haben müssen, ist ein Cache, der falsch konfiguriert ist.
Sehen Sie, wie NordicCDN dies für Ihre Website tut:
Mads hat seit seinem 16. Lebensjahr in der IT gearbeitet — hauptsächlich als Hosting. Er beteiligte sich früh an einer SaaS-Firma und half, sie bis zur Übernahme durch Visma weiterzuentwickeln, hat Data-Center-Netzwerke aufgebaut und betrieben und diente als CTO eines dänischen Rechenzentrums. Er hat NordicCDN gestartet, um eine schnelle, sichere Infrastruktur einfach zu bedienen.