Cambiar los modos de caché

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

Antes de empezar

  • Consulta información sobre los modos de caché y el contenido estático.

  • Asegúrate de que Cloud CDN esté habilitado. Para obtener instrucciones, consulta el artículo Usar Cloud CDN.

  • Si es necesario, actualiza a la versión más reciente de la CLI de Google Cloud:

    gcloud components update
    

Definir el modo de caché

Para configurar los modos de caché de un backend con Cloud CDN habilitado, sigue estos pasos:

Consola

  1. En la Google Cloud consola, ve a la página Balanceo de carga.

    Ir a la página Balanceo de carga

  2. Haga clic en el nombre de su balanceador de carga de aplicaciones 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 caché, selecciona una de las siguientes opciones:
    • Almacenar en caché contenido estático (opción recomendada): el contenido estático son recursos web que no cambian para cada usuario. El contenido estático se basa en el encabezado Content-Type de la respuesta. Para obtener más información, consulta el artículo sobre el contenido estático.
    • Usar configuración del origen en función de los encabezados Cache-Control: almacena en caché las respuestas con directivas de caché válidas en los encabezados de respuesta.
    • Forzar el almacenamiento en caché de todo el contenido: se almacena en caché todo el contenido servido correctamente por el origen y se ignoran las directivas private o no-store.
  7. Haz clic en Guardar.

gcloud

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

En el caso de los segmentos 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

Sustituye CACHE_MODE por una de las siguientes opciones:

  • CACHE_ALL_STATIC (predeterminado): almacena en caché automáticamente el contenido estático. Las respuestas que se marcan como no almacenables en caché (directivas private o no-store en los encabezados de respuesta Cache-Control) no se almacenan en caché. Para almacenar en caché contenido dinámico, este debe tener encabezados de almacenamiento en caché válidos.

  • USE_ORIGIN_HEADERS: requiere que el origen defina encabezados de almacenamiento en caché válidos para almacenar contenido en caché. Las respuestas sin estos encabezados no se almacenan en caché en el perímetro de Google y requieren un viaje completo al origen en cada solicitud, lo que puede afectar al rendimiento y aumentar la carga en el servidor de origen.

  • FORCE_CACHE_ALL: almacena en caché todo el contenido (es decir, las respuestas correctas) e ignora las directivas private o no-store de los encabezados de respuesta Cache-Control. Esto puede dar lugar a que se almacene en caché contenido privado y por usuario (información personal identificable). Habilita esta opción únicamente en backends que no estén sirviendo contenido privado o dinámico (por ejemplo, en segmentos de Cloud Storage). No habilites esta opción en backends que estén sirviendo contenido privado o dinámico.

API

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

En el caso de 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

Añade el siguiente fragmento al cuerpo de la solicitud JSON:

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

Sustituye CACHE_MODE por una de las siguientes opciones:

  • CACHE_ALL_STATIC (valor predeterminado): almacena en caché automáticamente el contenido estático si el origen no define encabezados de almacenamiento en caché válidos. Las respuestas que se marcan como no almacenables en caché (directivas private o no-store en los encabezados de respuesta Cache-Control) no se almacenan en caché. Para almacenar en caché contenido dinámico, este debe tener encabezados de almacenamiento en caché válidos.

  • USE_ORIGIN_HEADERS: requiere que el origen defina encabezados de almacenamiento en caché válidos para almacenar contenido en caché. Las respuestas sin estos encabezados no se almacenan en caché en el perímetro de Google y requieren un viaje completo al origen en cada solicitud, lo que puede afectar al rendimiento y aumentar la carga en el servidor de origen.

  • FORCE_CACHE_ALL: almacena en caché todo el contenido (es decir, las respuestas correctas) e ignora las directivas private o no-store de los encabezados de respuesta Cache-Control. Esto puede dar lugar a que se almacene en caché contenido privado y por usuario (información personal identificable). Debes habilitar esta opción únicamente en backends que no estén sirviendo contenido privado o dinámico (por ejemplo, en segmentos de Cloud Storage).