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 Optiongcloud --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
undExpires
), jedoch nicht die anderen Ursprungsantwortheader. Insbesondere wird einVary
-Header weiter berücksichtigt und das Caching kann auch bei Verwendung des ModusFORCE_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
- Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
- Klicken Sie auf den Namen Ihres externen Application Load Balancers.
- Klicken Sie auf Bearbeiten .
- Wählen Sie unter Back-End-Konfiguration ein Back-End aus und klicken Sie auf Bearbeiten .
- Achten Sie darauf, dass Cloud CDN aktivieren ausgewählt ist.
- 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
oderno-store
.
- Statische Inhalte im Cache speichern (empfohlen): Statische Inhalte sind Web-Assets, die sich nicht für jeden Nutzer ändern. Statische Inhalte basieren auf dem
- 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 (mitprivate
- oderno-store
-Anweisungen inCache-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. Alleprivate
- oderno-store
-Anweisungen inCache-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 (mitprivate
- oderno-store
-Anweisungen inCache-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. Alleprivate
- oderno-store
-Anweisungen inCache-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.