Negatives Caching verwenden

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 302 und 307 Temporäre Weiterleitungen Standardmäßig nicht im Cache gespeichert
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. Dies ermöglicht es Cloud CDN, die Ursprünge von Anfragen abzuschirmen, die die Fehler (wie „404 Not Found“) generieren, auf die gleiche Weise abzuschirmen, wie es die Ursprünge von Anfragen abschirmt, die erfolgreiche Antworten generieren.

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 HTTP(S)-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. Klicken Sie unten im Fenster auf Erweiterte Konfigurationen.
  7. Klicken Sie auf Negatives Caching aktivieren.
  8. Klicken Sie auf Negative Caching-Richtlinie hinzufügen.
    1. Geben Sie einen HTTP-Statuscode ein.
    2. Wählen Sie unter Cache-Gültigkeitsdauer (TTL) einen Wert aus.
  9. Klicken Sie auf Aktualisieren.
  10. Klicken Sie noch einmal auf Aktualisieren.

gcloud

Verwenden Sie für Back-End-Buckets den Befehl gcloud compute backend-buckets create oder gcloud compute backend-buckets update mit dem Flag --negative-caching.

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

gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --negative-caching
gcloud 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 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/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": {
  "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.

Für STATUS_CODE können Sie die folgenden HTTP-Statuscodes angeben:

  • 300, 301, 302, 307, 308
  • 404, 405, 410, 421, 451
  • 501

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

  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 HTTP(S)-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. Klicken Sie unten im Fenster auf Erweiterte Konfigurationen.
  7. Klicken Sie auf Negatives Caching aktivieren.
  8. Löschen Sie alle negativen Caching-Richtlinien.
  9. Entfernen Sie das Häkchen neben Negatives Caching aktivieren.
  10. Klicken Sie auf Aktualisieren.
  11. Klicken Sie noch einmal auf Aktualisieren.

gcloud

Verwenden Sie für Back-End-Buckets den Befehl gcloud compute backend-buckets create oder gcloud compute backend-buckets update mit dem Flag --no-negative-caching.

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

gcloud 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/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": {
  "negativeCaching": OFF
}