Perché Amazon CloudFront non memorizza i file nella cache per il periodo di tempo specificato?

3 minuti di lettura
0

Desidero specificare per quanto tempo la mia distribuzione Amazon CloudFront memorizza gli oggetti nella cache, quindi ho aggiunto le intestazioni Cache-Control o Expires all'origine. Tuttavia, CloudFront non memorizza nella cache gli oggetti per il periodo di tempo specificato, oppure CloudFront non memorizza affatto nella cache.

Risoluzione

Verifica che le direttive che hai impostato sulle intestazioni Cache-Control o Expires non siano in conflitto tra loro. È consigliabile utilizzare la direttiva Cache-Control max-age, anziché l'intestazione Expires. Se specifichi valori per entrambi, CloudFront utilizza solo il valore impostato per Cache-Control max-age.

Verifica che il TTL minimo, il TTL predefinito e il TTL massimo impostati sulla distribuzione CloudFront non siano in conflitto con le intestazioni Cache-Control o Expires.

Se queste impostazioni sulla durata della cache sono in conflitto tra loro, CloudFront potrebbe non memorizzare gli oggetti nella cache per il tempo impostato oppure CloudFront potrebbe non memorizzare affatto nella cache. Evita questi esempi di impostazioni di durata della cache che sono in conflitto tra loro:

  • Il TTL massimo è impostato su 5 minuti (300 secondi) e intestazione Cache-Control max-age è impostata su 1 ora (3600 secondi). In questo caso, CloudFront memorizza l'oggetto nella cache per 5 minuti anziché per 1 ora.
  • L'intestazione Cache-Control max-age è impostata su 3 ore e l'intestazione Expires è impostata su 1 mese. In questo caso, CloudFront memorizza l'oggetto nella cache per 3 ore anziché per 1 mese.
  • I TTL predefiniti, minimi e massimi sono impostati su 0 secondi. In questo caso, CloudFront verifica sempre di avere i contenuti più recenti dall'origine.
  • Il TTL minimo è impostato su 60 secondi, il TTL predefinito è impostato su 300 secondi e il TTL massimo è impostato su 3600 secondi. Se l'origine non fornisce intestazioni di cache, come Cache-Control max-age o Expires, CloudFront memorizza l'oggetto nella cache per la durata TTL predefinita.

Importante: se aggiorni una risorsa di origine con un'intestazione di memorizzazione nella cache, CloudFront riflette la modifica solo dopo che CloudFront ha effettuato una nuova richiesta all'origine. CloudFront invia una nuova richiesta all'origine quando la risorsa memorizzata nella cache scade nelle posizioni edge. Quindi, la tua distribuzione riceve una nuova richiesta per la risorsa. Per forzare CloudFront a riflettere l'aggiornamento prima che la risorsa memorizzata nella cache sia impostata per scadere, invalida la cache.

Informazioni correlate

Memorizzazione nella cache degli oggetti

Gestione della durata della permanenza dei contenuti nella cache (scadenza)

Controllare la durata della memorizzazione nella cache degli errori da parte di CloudFront

AWS UFFICIALE
AWS UFFICIALEAggiornata 10 mesi fa