TTL-Einstellungen und -Überschreibungen ändern

Auf dieser Seite wird beschrieben, wie Sie TTL-Überschreibungen mit Cloud CDN ändern. Mit TTL-Überschreibungen können Sie genau steuern, wie lange Ihre Inhalte von Cloud CDN im Cache gespeichert werden, bevor sie von Cloud CND noch einmal validiert werden.

Die TTL-Einstellungen sind in der folgenden Tabelle zusammengefasst.

  Standard-TTL Max. TTL Client-TTL
Grund für die Konfiguration Cache-Trefferquoten für Inhalte verbessern, die sich nicht oft ändern Erzwingen, dass Cloud CDN Inhalte häufiger als vom Ursprungsheader angegeben neu validiert Clients zwingen, Inhalte häufiger mit Cloud CDN neu zu validieren
Wird verwendet, wenn Für eine erfolgreiche Antwort ist eine der folgenden Aussagen richtig:
  • Cache-Modus = FORCE_CACHE_ALL.
  • Cache-Modus = CACHE_ALL_STATIC, der Inhaltstyp ist statisch im Cache speicherbar und es wird keine TTL durch Ursprungsheader festgelegt (max-age, s-maxage oderExpires).
Alle folgenden Bedingungen sind erfüllt:
  • Cache-Modus = CACHE_ALL_STATIC.
  • Eine TTL wird durch Ursprungsheader (max-age, s-maxage oder Expires) festgelegt
  • Die im Ursprungsheader angegebene TTL ist größer als der maximale TTL-Wert.
Eine der folgenden Bedingungen ist erfüllt:
  • Cache-Modus = FORCE_CACHE_ALL und der Client-TTL-Wert ist kleiner als die TTL von Cloud CDN
  • Cache-Modus = CACHE_ALL_STATIC und die Client-TTL ist kleiner als die vom Ursprungsheader festgelegte TTL (oder die Standard-TTL, wenn keine Ursprungsheaderinformationen vorhanden sind).
Standardwert 3.600 Sekunden (1 Stunde) 86.400 Sekunden (1 Tag) 3.600 Sekunden (1 Stunde)
Maximal zulässiger Wert 31.622.400 Sekunden (1 Jahr) 31.622.400 Sekunden (1 Jahr) 31.622.400 Sekunden (1 Jahr)
Notes Muss kleiner oder gleich der maximalen TTL sein

--default-ttl=0
erzwingt, dass die Antwort am Ursprung neu validiert wird
Muss kleiner oder gleich der maximalen TTL sein

Hinweise

  • Weitere Informationen zu Cache-Modi.

  • 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
    

Standard-TTL festlegen

Um die Cache-Trefferquoten für Inhalte zu verbessern, die sich nicht oft ändern, können Sie die Standard-TTL überschreiben, sodass Cloud CDN die Inhalte am Ursprung seltener noch einmal validiert. Beachten Sie, dass Objekte, auf die selten zugegriffen wird, vor der festgelegten TTL möglicherweise aus dem Cache entfernt werden.

Wenn der Cache-Modus FORCE_CACHE_ALL ist, überschreibt die Standard-TTL den in allen Antworten festgelegten TTL-Wert. Das gilt auch dann, wenn durch Ursprungsheader eine TTL festgelegt wurde. In diesem Modus ist die Standard-TTL für Clients sichtbar, da Cloud CDN die Attribute public und max-age der an Clients gesendeten Antworten festlegt.

Im Modus CACHE_ALL_STATIC wird die Standard-TTL auf zwischengespeicherte Inhalte angewendet, die von einem Ursprung für Antworten ohne gültige TTL (Header max-age, s-maxage oderExpires) bereitgestellt wurden. Im Modus CACHE_ALL_STATIC ändert die Standard-TTL nicht den Cache-Control-Header, der an Clients ausgegeben wird. Wenn Sie den Cache-Control-Header im Modus CACHE_ALL_STATIC ändern möchten, müssen Sie die Client-TTL festlegen.

Wenn Sie den Cache-Modus so festlegen, dass Ursprungsheader (USE_ORIGIN_HEADERS) verwendet werden, gilt der Standard-TTL-Wert nicht und kann nicht festgelegt werden, da Cloud CDN stattdessen die Ursprungsanweisung max-age oder s-maxage oder den Header Expires verwendet.

Console

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

    Load-Balancing aufrufen

  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. Achten Sie darauf, dass der Cache-Modus Statische Inhalte im Cache speichern (empfohlen) oder Alle Inhalte im Cache speichern ausgewählt ist. Im Cache-Modus Auf Cache-Control-Headern basierende Ursprungsserver-Einstellungen verwenden wird das Überschreiben der TTL-Werte nicht unterstützt.
  7. Wählen Sie unter Standard-Gültigkeitsdauer einen Wert aus.
  8. 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 --default-ttl.

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

gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME
    --default-ttl=DEFAULT_TTL
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --default-ttl=DEFAULT_TTL

Ersetzen Sie DEFAULT_TTL durch einen Wert in Höhe von bis zu 31.622.400 Sekunden (1 Jahr).

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": {
  "defaultTtl": DEFAULT_TTL
}

Ersetzen Sie DEFAULT_TTL durch einen Wert in Höhe von bis zu 31.622.400 Sekunden (1 Jahr).

Maximale TTL festlegen

Die maximale TTL gibt den maximal in Cloud CDN zulässigen TTL-Wert für im Cache gespeicherte Inhalte an, die von einem Ursprung bereitgestellt werden.

Die TTL einer Antwort wird durch den maximalen TTL-Wert begrenzt, wenn einer der folgenden Punkte zutrifft:

  • Mit der Antwort wird versucht, einen höheren Wert für max-age oder s-maxage als der maximale TTL-Wert festzulegen.
  • Die Antwort hat einen Expires-Header, dessen Wert höher ist als der Sekundenwert für cdnPolicy.maxTtl in der Zukunft.

Durch die Einstellung für den maximalen TTL-Wert wird der an den Client gesendete Wert für max-age nicht geändert. Weitere Informationen finden Sie unter Maximalen Client-TTL-Wert überschreiben. Die Einstellung für den maximalen TTL-Wert wirkt sich nur darauf aus, wie lange Cloud CDN versucht, den Inhalt im Cache zu speichern.

Diese Einstellung wird nur verwendet, wenn der Cache-Modus CACHE_ALL_STATIC ist. Der maximal zulässige Wert ist 31.622.400 Sekunden (1 Jahr). Beachten Sie, dass Objekte, auf die selten zugegriffen wird, vor der festgelegten TTL möglicherweise aus dem Cache entfernt werden.

Bei Festlegung von FORCE_CACHE_ALL gilt für die TTL immer die Standard-TTL. Sie können dann keinen maximalen TTL-Wert festlegen.

Console

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

    Load-Balancing aufrufen

  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. Achten Sie darauf, dass der Cache-Modus Statische Inhalte im Cache speichern (empfohlen) eingestellt ist.
  7. Wählen Sie unter Maximale Gültigkeitsdauer einen Wert aus.
  8. 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 --max-ttl.

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

gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME
    --max-ttl=MAX_TTL
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --max-ttl=MAX_TTL

Ersetzen Sie MAX_TTL durch einen Wert in Höhe von bis zu 31.622.400 Sekunden (1 Jahr).

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": {
  "maxTtl": MAX_TTL
}

Ersetzen Sie MAX_TTL durch einen Wert in Höhe von bis zu 31.622.400 Sekunden (1 Jahr).

Client-TTL überschreiben

Für alle Cache-Modi übergibt Cloud CDN Cache-Control-Header an den Client.

Mit der Client-TTL können Sie einen maximalen TTL-Wert für das Senden an Browser oder Clients festlegen. Clients validieren dann Inhalte häufiger gegenüber Cloud CDN neu, ohne dass der Ursprung noch einmal validiert werden muss. Sie haben so die Möglichkeit, Inhalte in Cloud CDN bei Bedarf als ungültig festzulegen. Browser können dann feststellen, dass der Inhalt nach Ablauf der Client-TTL ungültig wird.

Im Modus FORCE_CACHE_ALL übergibt Cloud CDN normalerweise den gleichen Wert für max-age an den Client, den es intern für das Proxy-Caching verwendet. Wenn jedoch eine Client-TTL mit einem kleineren Wert angegeben ist, wird stattdessen die Client-TTL in der Anweisung max-age an den Client übergeben. Ähnlich verhält es sich im Modus CACHE_ALL_STATIC. Die Client-TTL dient dabei als Klammer für alles, was für max-age vom Ursprungsserver festgelegt ist. Der max-age-Wert, der an den Browser oder Client gesendet wird, ist dann nicht größer als der konfigurierte Client-TTL-Wert. Wenn der Ursprung keinen max-age angibt, wird der kleinere Wert aus dem TTL-Wert des Cloud CDN und dem TTL-Wert des Clients als max-age verwendet, der an den Browser oder Client gesendet wird.

Wenn in der Ursprungsantwort ein Expires-Header vorhanden ist, wird er entfernt und durch eine Cache-Control: max-age-Anweisung mit der entsprechenden TTL ersetzt. Bei Fehlerantworten wird der Cache-Control-Header ebenfalls entfernt, wenn keine negative Caching-TTL eingestellt ist.

Da die Client-TTL als Höchstwert für die an Browser oder Clients gesendeten Werte behandelt wird, kann sie nicht verwendet werden, um den ansonsten gesendeten Wert max-age zu erhöhen. Wenn der max-age-Wert, der an Browser und Clients gesendet wird, niedriger ist, als Sie es wünschen, müssen Sie den Wert der max-age-Anweisung in der vom Ursprung zurückgegebenen Antwort erhöhen oder die Standardeinstellung für TTL oder negatives Caching entsprechend anpassen.

In der Regel ist eine Client-TTL-Einstellung von etwa einem Tag eine gute praktische Obergrenze. Eine Einstellung von einem Tag bedeutet, dass die Browser mindestens so häufig einchecken und sich über Cache-Ungültigkeiten informieren können, die im Cloud CDN aufgetreten sein könnten. Sie können die Client-TTL viel höher (bis zu einem Jahr) festlegen, um den Ursprung und die konfigurierten TTLs zuzulassen, um vollständig zu steuern, was an den Client gesendet wird. Dies kann nützlich sein, wenn Sie nicht wollen, dass der Browser häufigere Validierungen gegen Cloud CDN durchführt.

Console

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

    Load-Balancing aufrufen

  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. Achten Sie darauf, dass der Cache-Modus Statische Inhalte im Cache speichern (empfohlen) oder Alle Inhalte im Cache speichern ausgewählt ist. Im Cache-Modus Auf Cache-Control-Headern basierende Ursprungsserver-Einstellungen verwenden wird das Überschreiben der TTL-Werte nicht unterstützt.
  7. Wählen Sie unter Client-Gültigkeitsdauer einen Wert von bis zu 1 Jahr aus.
  8. 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 --client-ttl.

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

gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME
    --client-ttl=CLIENT_TTL
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --client-ttl=CLIENT_TTL

Ersetzen Sie CLIENT_TTL durch einen Wert in Höhe von bis zu 31.622.400 Sekunden (1 Jahr).

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": {
  "clientTtl": CLIENT_TTL
}

Ersetzen Sie CLIENT_TTL durch einen Wert in Höhe von bis zu 31.622.400 Sekunden (1 Jahr).

Nächste Schritte