Best Practices für die Inhaltsübermittlung

Diese Seite enthält Best Practices zur optimierten und schnelleren Inhaltsbereitstellung mit Cloud CDN. Die Abschnitte sind in mehrere zentrale Bereiche unterteilt.

Cloud CDN verwendet einen externen Application Load Balancer als Ursprung für cache-fähige Inhalte. Über einen externen Application Load Balancer kann Nutzern eine Kombination aus statischen und dynamisch erstellten Inhalten zur Verfügung gestellt werden. Dies erfolgt über eine globale IP-Adresse der folgenden Back-End-Typen:

Aufgrund der nahtlosen Einbindung in Google Cloud haben Sie mehrere Möglichkeiten, Cloud CDN bereitzustellen und Inhalte zu verwalten. Sie können die hier aufgeführten Best Practices nutzen, um Ihre Bereitstellung zu planen und zu optimieren. Weitere Informationen finden Sie unter Cloud CDN einrichten.

Cache-Trefferquote optimieren

Mit den folgenden empfohlenen Vorgehensweisen können Sie die Cache-Trefferquote optimieren.

Statische Inhalte im Cache speichern

Als Best Practice zur Verbesserung der Leistung müssen Sie beim Aktivieren von Cloud CDN den richtigen Cache-Modus für Ihre Anwendung auswählen.

Die flexibelste und allgemein bevorzugte Methode zum Verwalten von Cache-Regeln ist die Verwendung des Headers "Cachesteuerung". Wenn Sie nicht mit der Verwendung von Ursprungs-Cache-Control-Headers enthält, empfiehlt es sich, den Zugriff auf Cloud CDN, um statische Inhalte automatisch im Cache zu speichern.

Wenn Sie statische Antworten von Ihrem Ursprung automatisch im Cache speichern möchten, können Sie die Einstellung --cache-mode=CACHE_ALL_STATIC verwenden (Standard). Mit dieser Einstellung kann Cloud CDN gängige statische Inhaltstypen im Cache speichern, wenn der Ursprung keine Caching-Anweisungen in den Antwortheadern angibt. Der Inhalt muss den beschriebenen Kategorien entsprechen. Andernfalls werden Inhalte nicht im Cache gespeichert.

Nutzerspezifische Inhalte nicht im Cache speichern

In einigen Fällen können Browser nutzerspezifische Inhalte im Cache speichern. Verwenden Sie Cloud CDN nicht zum Speichern von nutzerspezifischen Inhalten im Cache.

Benutzerdefinierte Cache-Schlüssel zur Verbesserung der Cache-Trefferquote verwenden

Für Leistung und Skalierbarkeit ist es wichtig, die Cache-Trefferquote zu optimieren. Cloud CDN nutzt standardmäßig die vollständige Anfrage-URL, um den Cache-Schlüssel zu erstellen. Sie können benutzerdefinierte Cache-Schlüssel nutzen, um die Cache-Trefferquote zu optimieren, sodass Cloud CDN den Cache nicht unnötig fragmentiert.

Cloud CDN-Speicher für Schlüssel/Wert-Paare (zum Vergrößern klicken)

Mit benutzerdefinierten Cache-Schlüsseln können Sie eine beliebige Kombination aus Protokoll-, Host- und Anfragestrings ein- oder weglassen. Im Folgenden finden Sie einige Beispiele für die Verwendung benutzerdefinierter Cache-Schlüssel:

  • Sie haben zwei Hosts, die in dieselbe IP-Adresse aufgelöst werden und zum selben Dienst gehen. In diesem Beispiel ist die gesamte Website auf den beiden Hosts identisch. Standardmäßig speichert Cloud CDN aufgrund des unterschiedlichen Headers Host: in den HTTP-Anfragen zwei Kopien im Cache. Mit einem benutzerdefinierten Cache-Schlüssel können Sie Cloud CDN dazu veranlassen, den Hostteil der Anfrage zu ignorieren und die Cache-Einträge freizugeben.

  • In einem genaueren Beispiel haben Sie zwei Websites in verschiedenen Domains mit demselben Logo. Der Inhalt der Website ist unterschiedlich, aber Sie verwenden das gleiche Firmenlogo für beide Domains und Sie haben einen dedizierten Backend-Dienst mit freigegebenen Inhalten. Wenn Sie für den Backend-Dienst, der das Logo enthält, Cloud CDN aktivieren und die Cache-Schlüssel anpassen möchten, müssen Sie das Häkchen im Kästchen Host entfernen. Der Cache ignoriert dann die Domain, speichert aber das Logo.

  • Ein Logo muss im Cache gespeichert werden, unabhängig davon, ob es über HTTP oder HTTPS angezeigt wird. Wenn Sie die Cache-Schlüssel für den Backend-Dienst, der das Logo enthält, anpassen, sollten Sie das Kästchen Protokoll deaktivieren, sodass der Cache-Eintrag des Logos gleichermaßen für Anfragen über HTTP und HTTPS aufgerufen wird.

Wie Sie Cache-Schlüssel anpassen, können Sie unter Cache-Schlüssel verwenden herausfinden.

Leistung optimieren

Die folgenden empfohlenen Vorgehensweisen helfen bei der Leistungsoptimierung.

Unterstützung der Protokolle HTTP/3 und QUIC muss aktiviert sein

HTTP/3 ist ein Internetprotokoll der nächsten Generation. Es baut auf QUIC auf, einem Protokoll, das aus dem ursprünglichen Google QUIC-Protokoll (gQUIC) entwickelt wurde. HTTP/3 wird zwischen dem externen HTTP(S)-Load-Balancer, Cloud CDN und Clients unterstützt.

Um die Leistung mit Cloud CDN zu steigern, muss HTTP/3 aktiviert sein.

Negatives Caching verwenden

Negatives Caching bietet eine detaillierte Kontrolle über das Caching für häufige Fehler oder Weiterleitungen. Wenn Cloud CDN bestimmte Antwortcodes erkennt, wird diese Antwort für eine festgelegte TTL im Cache gespeichert. So können Sie die Belastung am Ursprung verringern und durch die reduzierte Antwortlatenz die Abläufe für die Endnutzer verbessern.

Sicherheit optimieren

Mit den folgenden empfohlenen Vorgehensweisen können Sie die Sicherheit optimieren.

Google Cloud Armor verwenden

Google Cloud Armor kann in Cloud CDN sowohl für im Cache gespeicherte Inhalte als auch für nicht im Cache gespeicherte Inhalte oder Inhalte mit Cache-Fehlern eingebunden werden. Eine Best Practice besteht darin, Google Cloud Armor nach Möglichkeit in Verbindung mit Cloud CDN zu verwenden, um die Sicherheit von Webanwendungen zu erhöhen.

Signierte URLs verwenden

Wenn Sie signierte URLs verwenden: beachten Sie Folgendes:

Private Ursprünge authentifizieren

Die Ursprungsauthentifizierung bietet eine hohe Sicherheit dafür, dass die Anfrage nur von Ihrem eigenen konfigurierten Backend-Dienst stammt. Außerdem bietet es Schutz für die Übertragung der Anfrage und schützt vor der Wiederverwendung des signierten Teils der Anfrage.

Wir empfehlen die Verwendung des privaten Ursprungsservers Authentifizierung für Amazon S3-Buckets oder kompatible Objektspeicher. Privater Ursprung können Sie sicherstellen, dass nur vertrauenswürdige Verbindungen privaten Ursprungs sind und nicht direkt darauf zugegriffen werden kann.

Wenn Ursprungs-Firewalls den Zugriff auf den Ursprung verhindern, können Sie außerdem eine IP-Zulassungsliste verwenden, um sicherzustellen, dass eine Anfrage von Cloud CDN oder dem externen Application Load Balancer stammt. Andere Media CDNs werden dadurch jedoch nicht verhindert. Kunden davon abhalten, auf Ihre Inhalte zuzugreifen, indem sie Ihren Ursprung in und deren Konfiguration.

Cache optimieren

Die folgenden empfohlenen Vorgehensweisen helfen bei der Optimierung des Cache.

Cache-TTLs optimieren

Sie können die TTLs festlegen oder überschreiben, um zu optimieren, wie lange Cloud CDN Ihre Antworten im Cache speichert und wann Cloud CDN Ihre Antworten neu validiert.

Sie können auch eine clientseitige TTL definieren, um die Browser-Caches optimal zu nutzen.

Weitere Informationen finden Sie unter TTL-Einstellungen und -Überschreibungen verwenden.

Ablaufzeit für zeitkritischen Inhalt festlegen

Jedes Inhaltselement in einem Cloud CDN-Cache ist mit einer Ablaufzeit verknüpft. Legen Sie daher eine Ablaufzeit fest, die zu Ihrem Anwendungsfall passt. Da Ursprungsserver auf dem Cache-Server abgelaufene Inhalte noch einmal senden müssen, ist es wichtig, dass Sie die Ablaufzeit sorgfältig auswählen.

Eine Methode für die Auswahl der Ablaufzeit ist, Inhalte danach zu kategorisieren, wie oft der entsprechende Inhalt aktualisiert wird. Beispiel:

  • Nahezu in Echtzeit stattfindende Aktualisierungen, zum Beispiel Live-Feeds für Sportereignisse oder Verkehr
  • Häufige Aktualisierungen, z. B. wöchentliche, tägliche oder stündliche Wetterdaten oder Bilder auf Titelseiten von Nachrichtenportalen
  • Selten aktualisierte Elemente, z. B. Website-Logos, CSS- oder JavaScript-Dateien

Wählen Sie anschließend die Ablaufzeit nach der Inhaltskategorie aus. Eine Ablaufzeit von 5 Sekunden eignet sich beispielsweise für Sportergebnisse in Echtzeit, während für Wetteraktualisierungen eine Ablaufzeit von einer Stunde verwendet werden kann. Für Inhalte, die in Cloud Storage gespeichert sind, legen Sie die Ablaufzeiten mithilfe von Cache-Control-Metadaten fest. Wenn Inhalte von Compute Engine bereitgestellt werden, bestimmen Sie die Ablaufzeiten, indem Sie Ihre Webserversoftware konfigurieren.

Ablaufzeiten werden durch die Werte max-age und s-maxage im Cache-Control-Header angegeben. Dieser Header wird durch die HTTP-Spezifikation definiert. Die folgenden Einstellungen im Cache-Control-Header machen beispielsweise die damit verbundenen Inhalte mit einer Ablaufzeit von 72 Stunden (259.200 Sekunden) öffentlich lesbar und cachefähige:

  Cache-Control: public, max-age=259200

Folgen Sie zur Maximierung des Cachings den Richtlinien in der Caching-Übersicht. Denken Sie daran, dass die Werte max-age und s-maxage im Metadatenfeld Cache-Control auf folgende Weise interagieren:

  • Die Werte max-age und s-maxage werden in Sekunden gemessen.
  • Der Wert s-maxage gilt nur für freigegebene Caches, nicht für Browser-Caches.
  • Der Wert max-age gilt für alle Caches, sofern er nicht von s-maxage überschrieben wird.

Für Inhalte, die nur selten geändert werden oder die sich zusammen mit anderen Inhalten ändern müssen, ist es oft sinnvoll, eine lange Ablaufzeit in Kombination mit versionierten URLs zu verwenden.

Verwenden Sie versionierte URLs zur Aktualisierung von Inhalten

Bei Verwendung von versionierten Inhalten wird eine andere Version der gleichen Inhalte vom Server angeboten. Dabei werden die älteren Inhalte entfernt und dem Nutzer werden die neuen Inhalte angezeigt, bevor die Speicherdauer im Cache abgelaufen ist. Die Versionsverwaltung ist kostenlos. Wir empfehlen daher, Versionierung standardmäßig für die Aktualisierung von Cache-fähigen Inhalten zu nutzen.

Um Inhalte zu versionieren, fügen Sie der URL einen Parameter (beispielsweise eine Versionsnummer) hinzu. Es gibt verschiedene Möglichkeiten, Parameter in URLs einzubinden, z. B:

  • Abfragestring hinzufügen: file.ext?v=100.

    Bei Backend-Buckets müssen alle für die Versionsverwaltung verwendeten Abfragestrings in der Konfiguration für den Backend-Bucket angegeben werden. Weitere Informationen finden Sie unter Abfragestring-Einschlussliste für Cloud Storage-Cache-Schlüssel.

  • Dateinamen ändern: file.1.0.0.ext oder file_v100.ext.

  • Ändern Sie den Pfad: /v100/file.ext.

Wenn Sie den Parameter hinzufügen, ändern Sie den Namen der Datei und die URL. Durch diese Änderung ignoriert der Cache sämtliche bereits vorhandenen Cache-Einträge.

Entwertung zum Entfernen von Inhalten sparsam verwenden

Entwertung entfernt Inhalte aus den verteilten Cache-Servern von Cloud CDN, bevor der Cache-Eintrag abläuft. Die Entwertung ist letztendlich konsistent.

Wir empfehlen Ihnen, die Entwertung sparsam und nur als letztes Mittel zu verwenden. Entwertung ist beispielsweise dann nützlich, wenn Sie Inhalte aus rechtlichen Gründen oder aufgrund eines versehentlichen Uploads entfernen müssen. Andernfalls empfehlen wir, wenn möglich die Versionsverwaltung zu nutzen oder zu warten, bis der Inhalt normal abläuft. Cloud CDN-Cache-Server bereinigt regelmäßig Inhalte, auf die selten zugegriffen wird, um Platz für neue Inhalte zu schaffen. Inhalte, auf die 30 Tage lang nicht zugegriffen wurde, werden bedingungslos entfernt.

Cache-Entwertungen sind Ratenbegrenzungen.

Weitere Informationen zur Entwertung finden Sie unter Cache-Entwertung.

Konsistenz der hochgeladenen Dateien optimieren

Die folgenden empfohlenen Vorgehensweisen helfen dabei, die Konsistenz von Dateiuploads zu optimieren.

Vorhandene Dateien nicht aktualisieren

Laden Sie stattdessen neue Versionen hoch, anstatt vorhandene Dateien zu aktualisieren.

Verwenden Sie für neue Dateien eindeutige Namen, die Versionsnummern oder Datumsangaben enthalten können. Wenn Sie dem Dateinamen eine Versionsnummer (z. B. file_v2.css) oder ein Datum (z. B. file_20230806.js) anhängen, wird von Cloud CDN die richtige, aktualisierte Version abgerufen. Es wird nicht empfohlen, der Datei-URL einen Parameter anzuhängen (z. B. file.css?v=2), um das Abrufen einer neuen Version zu erzwingen. Bei diesem Ansatz wird das Risiko nicht berücksichtigt, dass eine nicht atomare Ursprungsdatei aktualisiert und teilweise oder unvollständige Dateien im Cache gespeichert werden.

Es ist wichtig, vor dem Hochladen der Dateien neue Versionen von Abhängigkeiten hochzuladen. die auf sie verweisen. So wird sichergestellt, dass alle Verweise auf vollständige, aktualisierte Dateien verweisen, wodurch das Risiko verringert wird, dass teilweise aktualisierte oder abgeschnittene Dateien bereitgestellt werden.

Atomare Updates an Dateien vornehmen

Wenn vorhandene Dateien aktualisiert werden müssen, gehen Sie dies in kleinstmöglichen Schritten vor.

Wird auf eine Datei zugegriffen und sie wird im Cache gespeichert, bevor der Upload abgeschlossen ist, als unvollständige oder abgeschnittene Datei im Cache gespeichert werden. Eine Datei wie „/index.html“ darf keinen eindeutigen Namen haben, kann aber auf andere Dateien verweisen, eindeutigen Namen verwenden.

Wenn Sie eine Datei unter ihrem Zielnamen hochladen, kann es passieren, dass unvollständige Dateien im Cache gespeichert werden, wenn während des Uploads darauf zugegriffen wird. Laden Sie die Datei stattdessen unter einem temporären Namen hinzu und benennen Sie ihn erst nach dem Upload in den Zielnamen um. abgeschlossen ist. So wird sichergestellt, dass die Datei sofort wenn darauf verwiesen wird.

Bytebereich-Caching, wenn vorhandene Dateien aktualisiert werden kann dazu führen, dass Cloud CDN Bereiche der früheren Datei nach der neuen Datei wurde hochgeladen. Wenn Cloud CDN Bereiche der früheren Datei im Cache gespeichert hat, können Anfragen nach fehlenden Chunks zu teilweisen Antworten führen. Das passiert da Cloud CDN erkennt, dass sich die Ursprungsdatei geändert hat (weil sich etag oder last-modified ändern), löscht alle veralteten Inhalte. trennt alle laufenden Downloads und generiert einen Fehler, der den Client erneut versuchen. Um dieses Problem zu vermeiden, heben Sie die Cache-Dateien für den Bytebereich auf, die aktualisiert werden.

Monitoring und Logging optimieren

Mit den folgenden empfohlenen Vorgehensweisen können Sie das Monitoring optimieren und Logging.

Logging für Cloud CDN muss aktiviert sein

Eine Best Practice für die Verwaltung von Cloud CDN besteht darin, Logging für alle Cloud CDN-fähigen Back-Ends zu aktivieren.

Benutzerdefiniertes Monitoring-Dashboard für Cloud CDN verwenden

Um für eine hohe Zuverlässigkeit und Leistung zu sorgen, sollten Sie regelmäßig Monitoring-Messwerte im Zusammenhang mit Cloud CDN prüfen. Ein guter Ausgangspunkt ist das benutzerdefinierte Monitoring-Dashboard für Cloud CDN.

Leistungstests von Drittanbietern prüfen

Lesen Sie Berichte von Drittanbietern, z. B. Berichte zur Verfügbarkeit, Latenz und zum Durchsatz von Citrix Radar.