Auf dieser Seite finden Sie eine Anleitung zum Verwenden von TTL-Überschreibungen mit Cloud CDN. 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.
Vorbereitung
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 das Cloud SDK auf die neueste Version:
gcloud components update
Standard-TTL festlegen
Wenn Sie den Cache-Modus so festlegen, dass alle statischen Inhalte (CACHE_ALL_STATIC
) oder alle Inhalte unabhängig vom Inhaltstyp (FORCE_CACHE_ALL
) im Cache gespeichert werden, beträgt die Standard-Gültigkeitsdauer (TTL) für das Caching von Inhalten 3.600 Sekunden (1 Stunde).
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. Der maximal zulässige Wert für die Standard-TTL beträgt 31.622.400 Sekunden (1 Jahr). Selten aufgerufene Objekte werden möglicherweise vor dem Ablaufen der festgelegten TTL aus dem Cache entfernt.
Wenn Sie eine standardmäßige TTL von 0
festlegen, wird die Antwort dann am Ursprung neu validiert, wenn die Standard-TTL gilt.
Wenn Sie den Cache-Modus so festlegen, dass alle Inhalte unabhängig vom Inhaltstyp (FORCE_CACHE_ALL
) im Cache gespeichert werden, überschreibt die Standard-TTL den in allen Antworten festgelegten TTL-Wert. Dies 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-max-age
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-max-age
oder den Header Expires
verwendet.
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.
- 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.
- Wählen Sie unter Standard-Gültigkeitsdauer einen Wert aus.
- 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
oders-maxage
als der maximale TTL-Wert festzulegen. - Die Antwort hat einen
Expires
-Header, dessen Wert höher ist als der Sekundenwert fürcdnPolicy.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.
Wenn Sie den Cache-Modus so festlegen, dass alle statischen Inhalte im Cache gespeichert werden (CACHE_ALL_STATIC
), wird der maximale TTL-Wert für das Caching von Inhalten standardmäßig auf 86.400 Sekunden (1 Tag) festgelegt. Der maximal zulässige Wert ist 31.622.400 Sekunden (1 Jahr). Selten aufgerufene Objekte werden möglicherweise jedoch vor dem Ablaufen der festgelegten TTL aus dem Cache entfernt.
Bei Festlegung von FORCE_CACHE_ALL
gilt für die TTL immer die Standard-TTL. Sie können dann keinen maximalen TTL-Wert festlegen.
Der Wert für die maximale TTL kann gleich oder größer als der Standard-TTL-Wert sein.
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.
- Achten Sie darauf, dass der Cache-Modus Statische Inhalte im Cache speichern (empfohlen) eingestellt ist.
- Wählen Sie unter Maximale Gültigkeitsdauer einen Wert aus.
- 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 für max-age
kein Wert angegeben ist, wird der kleinere der beiden Werte von Standard-TTL und Client-TTL als max-age
-Wert verwendet, der an den Browser oder Client gesendet wird.
Der Wert der Client-TTL darf nicht größer sein als der maximale TTL-Wert.
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.
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.
- 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.
- Wählen Sie unter Client-Gültigkeitsdauer einen Wert bis 86.400 Sekunden aus.
- 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 86.400 Sekunden (1 Tag).
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 86.400 Sekunden (1 Tag).