Usa modos de almacenamiento en caché

En esta página, se proporcionan instrucciones para usar los modos de almacenamiento en caché con Cloud CDN. Los modos de almacenamiento en caché te permiten configurar cómo Cloud CDN almacena en caché tu contenido.

Antes de comenzar

Configura el modo de almacenamiento en caché

Cloud CDN ofrece tres modos de almacenamiento en caché, que definen cómo las respuestas se almacenan en caché, si Cloud CDN respeta las directivas de caché que envió el origen y cómo se aplican los TTL de caché.

Los modos de almacenamiento en caché disponibles se muestran en la siguiente tabla:

Modo de almacenamiento en caché Comportamiento
USE_ORIGIN_HEADERS Requiere respuestas de origen para establecer directivas de caché válidas y encabezados de almacenamiento en caché válidos. Las respuestas sin estas directivas se reenvían del origen.

Este es el comportamiento predeterminado para los backends habilitados para Cloud CDN que se crean mediante la herramienta de línea de comandos de gcloud o la API de REST.

CACHE_ALL_STATIC Almacena en caché de forma automática el contenido estático que no tiene la directiva no-store, private o no-cache. Las respuestas de origen que establecen directivas de almacenamiento en caché válidas también se almacenan en caché.
FORCE_CACHE_ALL Se almacenan en caché las respuestas de forma incondicional y se anulan las directivas de caché que estableció el origen. Asegúrate de no almacenar en caché contenido privado por usuario (como HTML dinámico o respuestas de la API) si usas un backend compartido con este modo configurado.

A fin de configurar los modos de almacenamiento en caché para un backend con Cloud CDN habilitado, sigue estos pasos:

Console

  1. En Google Cloud Console, ve a la página Balanceo de cargas.

    Ir a la página Balanceo de cargas

  2. Haz clic en el nombre del balanceador de cargas de HTTP(S) externo.
  3. Haz clic en Editar .
  4. En Configuración de backend, selecciona un backend y haz clic en Editar .
  5. Asegúrate de que la opción Habilitar Cloud CDN esté seleccionada.
  6. En Modo de almacenamiento en caché, selecciona una de las siguientes opciones:
    • Almacena el contenido estático en caché (recomendado): El contenido estático consiste en recursos web que no cambian para cada usuario. El contenido estático se basa en el Content-Type en la respuesta. Para obtener más información, consulta contenido estático.
    • Usa la configuración de origen en función de los encabezados Cache-Control: Almacena en caché respuestas con directivas de caché válidas en los encabezados de respuesta.
    • Fuerza el almacenamiento en caché de todo el contenido: Almacena en caché todo el contenido que entrega el origen, sin importar las directivas private, no-store o no-cache.
  7. Haz clic en Guardar.

gcloud

Para los servicios de backend, usa el comando gcloud compute backend-services create o gcloud compute backend-services update con la marca --cache-mode.

Para los buckets de backend, usa el comando gcloud compute backend-buckets create o gcloud compute backend-buckets update con la marca --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

Reemplaza CACHE_MODE por uno de los siguientes valores:

  • CACHE_ALL_STATIC: Almacena en caché el contenido estático de forma automática. Las respuestas con la marca de que no pueden almacenarse en caché (directivas private, no-store o no-cache en encabezados de respuesta Cache-Control) no se almacenan en caché. Para almacenar en caché contenido dinámico, el contenido debe tener encabezados de almacenamiento en caché válidos.

  • USE_ORIGIN_HEADERS: Se requiere que se configuren encabezados de almacenamiento en caché válidos para el contenido de la caché en el origen. Las respuestas sin estos encabezados no se almacenan en caché en el extremo de Google y requieren un recorrido completo al origen en cada solicitud, lo que podría afectar el rendimiento y aumentar la carga en el servidor de origen. Este es el comportamiento predeterminado para los backends habilitados para Cloud CDN que se crean mediante la herramienta de línea de comandos de gcloud o la API de REST.

  • FORCE_CACHE_ALL: Almacena en caché todo el contenido, sin importar las directivas private, no-store o no-cache en los encabezados de respuesta Cache-Control. Esto podría provocar que se almacene en caché el contenido privado por usuario (lo que permita identificarlo). Solo se debería habilitar en backends que no entreguen contenido dinámico ni privado, como los buckets de Cloud Storage. No habilites esta opción en backends que entregan contenido privado o dinámico.

API

En el caso de los buckets de backend, usa la llamada a la API Method: backendBuckets.insert o Method: backendBuckets.update.

Para los servicios de backend, usa la llamada a la API Method: backendServices.insert o Method: backendServices.update.

Usa una de las siguientes llamadas a la API:

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

Agrega el siguiente fragmento al cuerpo de la solicitud JSON:

"cdnPolicy": {
  "cacheMode": (CACHE_ALL_STATIC | USE_ORIGIN_HEADERS | FORCE_CACHE_ALL)

Reemplaza CACHE_MODE por uno de los siguientes valores:

  • CACHE_ALL_STATIC (predeterminado): Almacena en caché el contenido estático de forma automática. Las respuestas con la marca de que no pueden almacenarse en caché (directivas private, no-store o no-cache en encabezados de respuesta Cache-Control) no se almacenan en caché. Para almacenar en caché contenido dinámico, el contenido debe tener encabezados de almacenamiento en caché válidos.

  • USE_ORIGIN_HEADERS: Se requiere que se configuren encabezados de almacenamiento en caché válidos para el contenido de la caché en el origen. Las respuestas sin estos encabezados no se almacenan en caché en el extremo de Google y requieren un recorrido completo al origen en cada solicitud, lo que podría afectar el rendimiento y aumentar la carga en el servidor de origen. Este es el comportamiento predeterminado para los backends habilitados para Cloud CDN que se crean mediante la herramienta de línea de comandos de gcloud o la API de REST.

  • FORCE_CACHE_ALL: Almacena en caché todo el contenido, sin importar las directivas private, no-store o no-cache en los encabezados de respuesta Cache-Control. Esto podría provocar que se almacene en caché el contenido privado por usuario (lo que permita identificarlo). Solo se debería habilitar en backends que no entreguen contenido dinámico ni privado, como buckets de Cloud Storage.