Auf dieser Seite finden Sie eine Anleitung zur Verwendung von negativem Caching mit Cloud CDN. Beim negativen Caching können Sie für jeden Statuscode eine andere TTL festlegen.
Dies ermöglicht detaillierte Kontrolle über das Caching für häufige Fehler oder Weiterleitungen. So können Sie die Belastung am Ursprung verringern und durch die reduzierte Antwortlatenz die Abläufe für die Endnutzer verbessern.
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 das Cloud SDK auf die neueste Version:
gcloud components update
Statuscodes und Standard-TTLs
Negatives Caching gilt für bestimmte Statuscodes, die in der folgenden Tabelle aufgeführt sind.
Cloud CDN wendet die folgenden Standard-TTLs auf diese Statuscodes an:
Statuscode | Bedeutung | TTL |
---|---|---|
HTTP 300 | Mehrfachauswahl | 10 Minuten |
HTTP 301 und 308 | Dauerhafte Weiterleitungen | 10 Minuten |
HTTP 404 | Nicht gefunden | 120 Sekunden |
HTTP 405 | Methode nicht gefunden | 60 Sekunden |
HTTP 410 | Nicht mehr vorhanden | 120 Sekunden |
HTTP 421 | Falsch weitergeleitete Anfrage | 60 Sekunden |
HTTP 451 | Aus rechtlichen Gründen nicht verfügbar | 120 Sekunden |
HTTP 501 | Nicht implementiert | 60 Sekunden |
Sie können diese Standardwerte überschreiben, indem Sie mit negativem Caching eine Cache-TTL für den angegebenen HTTP-Statuscode festlegen.
Negatives Caching einrichten
Mit negativem Caching können Sie Ihren Dienst so konfigurieren, dass Fehler und Erfolge im Cache gespeichert werden.
Wenn ein Back-End keine gute Leistung erzielt, kann hier mehr Traffic entstehen, weil erfolgreiche Antworten in der Regel im Cache gespeichert werden. Während der Zeit mit hoher Latenz werden die Antworten jedes Mal neu abgerufen, wodurch es länger dauert, bis das Back-End wieder online ist. Durch das Zwischenspeichern von Fehlerantworten, z. B. des internen Serverfehlers 500, stellt Cloud CDN Zeit für die Fehlerbehebung bereit.
Console
- Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
- Klicken Sie auf den Namen Ihres externen HTTP(S)-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.
- Klicken Sie unten im Fenster auf Erweiterte Konfigurationen.
- Klicken Sie auf Negatives Caching aktivieren.
- Klicken Sie auf Negative Caching-Richtlinie hinzufügen.
- Geben Sie einen HTTP-Statuscode ein.
- Wählen Sie unter Cache-Gültigkeitsdauer (TTL) einen Wert aus.
- Klicken Sie auf Aktualisieren.
- Klicken Sie noch einmal auf Aktualisieren.
gcloud
Verwenden Sie für Back-End-Buckets den Befehl gcloud beta compute backend-buckets create oder gcloud beta compute backend-buckets update mit dem Flag --negative-caching
.
Verwenden Sie für Back-End-Dienste den Befehl gcloud beta compute backend-services create oder gcloud beta compute backend-services update mit dem Flag --negative-caching
.
gcloud beta compute backend-buckets (create | update) BACKEND_BUCKET_NAME --negative-caching
gcloud beta compute backend-services (create | update) BACKEND_SERVICE_NAME --negative-caching
Wenn Sie das negative Caching nur für zwei spezifische Fehlerantworten aktivieren möchten, können Sie beispielsweise festlegen, dass Antworten mit dem Statuscode 404
für 60 Sekunden im Cache gespeichert werden, und Antworten mit dem Statuscode 405
für 120 Sekunden.
gcloud beta compute backend-services update BACKEND_SERVICE_NAME \ --negative-caching \ --cache-mode=CACHE_ALL_STATIC \ --default-ttl=86400 \ --negative-caching-policy='404=60,405=120'
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/beta/projects/PROJECT_ID/global/backendBuckets PUT https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/backendBuckets/BACKEND_BUCKET POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/backendServices PUT https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE
Fügen Sie dem JSON-Anfragetext folgendes Snippet hinzu:
"cdnPolicy": { "negativeCaching": ON, "negativeCachingPolicy": [ { "code": STATUS_CODE, "ttl": TTL_SECONDS } ] }
Für die Konfiguration der negativeCachingPolicy
muss das negative Caching aktiviert sein. Wenn Sie die Richtlinie weglassen und negativeCaching
aktivieren, verwendet Cloud CDN die unter Statuscodes und Standard-TTLs aufgeführten Standardwerte.
Wenn Sie eine Richtlinie für negatives Caching festlegen, müssen Sie eine Cache-TTL für alle Antwortcodes angeben, die Sie im Cache speichern möchten. Cloud CDN wendet keine Standardwerte für das negative Caching an, wenn eine Richtlinie vorhanden ist.
Als STATUS_CODE können Sie die HTTP-Statuscodes 300
, 301
, 308
, 404
, 405
, 410
, 421
, 451
und 501
angeben.
Für jeden Statuscode können Sie in Sekunden festlegen, wie lange die Antworten im Cache gespeichert werden sollen. Lassen Sie das Feld „TTL“ leer, um negatives Caching für den Statuscode zu deaktivieren.
Der maximal zulässige Wert ist 1.800 Sekunden (30 Minuten). Vor der festgelegten TTL können nur selten aufgerufene Objekte aus dem Cache entfernt werden.
Wenn der Cache-Modus auf CACHE_ALL_STATIC
oder USE_ORIGIN_HEADERS
festgelegt ist, wird das negative Caching auf Antworten mit dem angegebenen Antwortcode angewendet, der beliebige cache-control
- oder expires
-Header zurückgibt. Ist der Cache-Modus auf FORCE_CACHE_ALL
festgelegt, wird das negative Caching auf alle Antworten mit dem angegebenen Antwortcode angewendet und überschreibt alle Caching-Header.
Negatives Caching deaktivieren
Console
- Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
- Klicken Sie auf den Namen Ihres externen HTTP(S)-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.
- Klicken Sie unten im Fenster auf Erweiterte Konfigurationen.
- Klicken Sie auf Negatives Caching aktivieren.
- Löschen Sie alle negativen Caching-Richtlinien.
- Entfernen Sie das Häkchen neben Negatives Caching aktivieren.
- Klicken Sie auf Aktualisieren.
- Klicken Sie noch einmal auf Aktualisieren.
gcloud
Verwenden Sie für Back-End-Buckets den Befehl gcloud beta compute backend-buckets create oder gcloud beta compute backend-buckets update mit dem Flag --no-negative-caching
.
Verwenden Sie für Back-End-Dienste den Befehl gcloud beta compute backend-services create oder gcloud beta compute backend-services update mit dem Flag --no-negative-caching
.
gcloud beta compute backend-services (create | update) (BACKEND_SERVICE_NAME | BACKEND_BUCKET_NAME) --no-negative-caching
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/beta/projects/PROJECT_ID/global/backendBuckets PUT https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/backendBuckets/BACKEND_BUCKET POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/backendServices PUT https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE
Fügen Sie dem JSON-Anfragetext folgendes Snippet hinzu:
"cdnPolicy": { "negativeCaching": OFF }