Cache-Modi ändern

Auf dieser Seite finden Sie eine Anleitung zum Ändern von Cache-Modi mit Cloud CDN. Mit Cache-Modi können Sie konfigurieren, wie Cloud CDN Ihre Inhalte im Cache speichert.

Vorbereitung

  • Informieren Sie sich über Cache-Modi und statische Inhalte.

  • Achten Sie darauf, dass Cloud CDN aktiviert ist. Eine Anleitung hierzu finden Sie unter Cloud CDN verwenden.

  • Aktualisieren Sie bei Bedarf auf die neueste Version der Google Cloud CLI:

    gcloud components update
    

Cache-Modus festlegen

Cloud CDN bietet drei Cache-Modi, mit denen definiert wird, wie Antworten im Cache gespeichert werden, ob Cloud CDN die vom Ursprung gesendeten Cache-Anweisungen berücksichtigt und wie Cache-TTLs angewendet werden.

Die verfügbaren Cache-Modi sind in der folgenden Tabelle aufgeführt:

Cache-Modus Verhalten
CACHE_ALL_STATIC Erfolgreiche Antworten werden automatisch mit statischen Inhalten, die nicht andernfalls nicht im Cache speicherbar. Ursprungantworten, die gültige Caching-Anweisungen festlegen, werden ebenfalls im Cache gespeichert.

Dies ist das Standardverhalten für Cloud CDN-fähige Back-Ends, die mit der Google Cloud CLI oder der REST API erstellt wurden.

USE_ORIGIN_HEADERS Erfordert erfolgreiche Ursprungsantworten, um gültige Cache-Anweisungen und gültige Caching-Header festzulegen. Erfolgreiche Antworten ohne diese Anweisungen werden vom Ursprung weitergeleitet.
FORCE_CACHE_ALL Erfolgreiche Antworten werden bedingungslos gespeichert, wodurch die vom Ursprung festgelegten Cache-Anweisungen überschrieben werden. Dieser Modus ist nicht geeignet, wenn das Backend private, nutzerspezifische Inhalte wie dynamische HTML- oder API-Antworten bereitstellt.

Fehlerantworten können im Cache gespeichert werden, auch wenn keine gültigen Cache-Anweisungen vorhanden sind.

Bevor Sie den Cache-Modus auf FORCE_CACHE_ALL setzen, sollten Sie Folgendes beachten:

  • Für signierte URLs oder signierte Cookies überschreibt FORCE_CACHE_ALL das Höchstalter, das in der Google Cloud Console über die Einstellung Höchstalter der Cache-Einträge oder die Option gcloud --signed-url-cache-max-age angegeben wurde.

  • FORCE_CACHE_ALL ändert die Gültigkeitsdauer (TTL) aller zuvor im Cache gespeicherten Inhalte. Diese Änderung kann dazu führen, dass einige Einträge, die zuvor als aktuell betrachtet wurden (da sie längere TTLs aus Ursprungsheadern haben), als veraltet gelten und einige Einträge, die zuvor als veraltet betrachtet wurden, als aktuell angesehen werden.

  • FORCE_CACHE_ALL überschreibt Cache-Anweisungen (Cache-Control und Expires), jedoch nicht die anderen Ursprungsantwortheader. Insbesondere wird ein Vary-Header weiter berücksichtigt und das Caching kann auch bei Verwendung des Modus FORCE_CACHE_ALL unterdrückt werden. Weitere Informationen finden Sie unter Vary-Header.

So konfigurieren Sie die Cache-Modi für ein Cloud CDN-fähiges Backend:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Zur Seite „Load-Balancing“

  2. Klicken Sie auf den Namen Ihres externen Application Load Balancers.
  3. Klicken Sie auf Bearbeiten .
  4. Wählen Sie unter Back-End-Konfiguration ein Back-End aus und klicken Sie auf Bearbeiten .
  5. Achten Sie darauf, dass Cloud CDN aktivieren ausgewählt ist.
  6. Wählen Sie unter Cache-Modus eine der folgenden Optionen aus:
    • Statische Inhalte im Cache speichern (empfohlen): Statische Inhalte sind Web-Assets, die sich nicht für jeden Nutzer ändern. Statische Inhalte basieren auf dem Content-Type in der Antwort. Weitere Informationen finden Sie unter Statische Inhalte.
    • Auf Cache-Control-Headern basierende Ursprungsserver-Einstellungen verwenden: Cacheantworten mit gültigen Cache-Anweisungen in den Antwort-Headern.
    • Alle Inhalte im Cache speichern: Speichert alle erfolgreichen Inhalte, die vom Ursprung bereitgestellt werden, und ignoriert die Anweisungen private oder no-store.
  7. Klicken Sie auf Speichern.

gcloud

Verwenden Sie für Back-End-Dienste den Befehl gcloud compute backend-services create oder gcloud compute backend-services update mit dem Flag --cache-mode.

Verwenden Sie für Backend-Buckets den Befehl gcloud compute backend-buckets create oder gcloud compute backend-buckets update mit dem Flag --cache-mode.

gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME
    --cache-mode=CACHE_MODE
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --cache-mode=CACHE_MODE

Ersetzen Sie CACHE_MODE durch einen der folgenden Werte:

  • CACHE_ALL_STATIC (Standard): Statische Inhalte werden automatisch im Cache gespeichert. Antworten, die als nicht im Cache speicherbar gekennzeichnet sind (mit private- oder no-store-Anweisungen in Cache-Control-Antwortheadern), werden nicht im Cache gespeichert. Damit dynamische Inhalte im Cache gespeichert werden können, muss der Inhalt gültige Caching-Header haben.

  • USE_ORIGIN_HEADERS: Hiermit wird erzwungen, dass der Ursprung zum Speichern von Inhalten im Cache gültige Caching-Header festlegt. Antworten ohne diese Header werden nicht im Edge-Netzwerk von Google gespeichert und erfordern bei jeder Anfrage einen vollständige Lauf zum Ursprung. Dies kann die Leistung beeinträchtigen und die Last auf dem Ursprungsserver erhöhen.

  • FORCE_CACHE_ALL: Speichert alle Inhalte (d. h. erfolgreiche Antworten) im Cache. Alle private- oder no-store-Anweisungen in Cache-Control-Antwortheadern werden ignoriert. Dies kann dazu führen, dass private, personenbezogene Inhalte im Cache gespeichert werden. Daher sollten Sie diese Funktion nur für Back-Ends aktivieren, die keine privaten oder dynamischen Inhalte bereitstellen, beispielsweise Cloud Storage-Buckets. Aktivieren Sie diese Option nicht auf Back-Ends, die privaten oder dynamischen Inhalt bereitstellen.

API

Verwenden Sie für Back-End-Buckets den API-Aufruf Method: backendBuckets.insert oder Method: backendBuckets.update.

Verwenden Sie für Back-End-Dienste den API-Aufruf Method: backendServices.insert oder Method: backendServices.update.

Verwenden Sie einen der folgenden API-Aufrufe:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/BACKEND_BUCKET
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE

Fügen Sie dem JSON-Anfragetext folgendes Snippet hinzu:

"cdnPolicy": {
  "cacheMode": (CACHE_ALL_STATIC | USE_ORIGIN_HEADERS | FORCE_CACHE_ALL)

Ersetzen Sie CACHE_MODE durch einen der folgenden Werte:

  • CACHE_ALL_STATIC (Standard): Statische Elemente werden automatisch im Cache gespeichert. Inhalt, wenn für den Ursprung kein gültige Caching-Header. Antworten, die als nicht im Cache speicherbar gekennzeichnet sind (mit private- oder no-store-Anweisungen in Cache-Control-Antwortheadern), werden nicht im Cache gespeichert. Damit dynamische Inhalte im Cache gespeichert werden können, muss der Inhalt gültige Caching-Header haben.

  • USE_ORIGIN_HEADERS: Hiermit wird erzwungen, dass der Ursprung zum Speichern von Inhalten im Cache gültige Caching-Header festlegt. Antworten ohne diese Header werden nicht im Edge-Netzwerk von Google gespeichert und erfordern bei jeder Anfrage einen vollständige Lauf zum Ursprung. Dies kann die Leistung beeinträchtigen und die Last auf dem Ursprungsserver erhöhen.

  • FORCE_CACHE_ALL: Speichert alle Inhalte (d. h. erfolgreiche Antworten) im Cache. Alle private- oder no-store-Anweisungen in Cache-Control-Antwortheadern werden ignoriert. Dies kann dazu führen, dass private, personenbezogene Inhalte im Cache gespeichert werden. Daher sollten Sie diese Funktion nur für Back-Ends aktivieren, die keine privaten oder dynamischen Inhalte bereitstellen, beispielsweise Cloud Storage-Buckets.