Mancato riscontro nella cache CDN a ogni POP per lo stesso URL immagine
Questo articolo descrive il motivo per cui le immagini servite da un servlet in Adobe Experience Manager as a Cloud Service possono causare errori nella cache CDN in punti di presenza (POP) diversi, anche quando le intestazioni di controllo cache specificano un valore TTL di 24 ore, e fornisce indicazioni sul comportamento previsto per la memorizzazione nella cache CDN.
Descrizione description
Ambiente
Adobe Experience Manager as a Cloud Service (tutte le versioni)
Problema/Sintomi
Un servlet restituisce le immagini JPEG per le pagine store e imposta un’intestazione Cache-Control: max-age=86400 (24 ore). Tuttavia, i registri CDN mostrano che lo stesso URL dell’immagine viene recuperato più volte dall’istanza Publish all’interno di un giorno, con lo stato della cache non raggiunto in posizioni CDN diverse (POP).
Esempi di voci di registro:
- Memorizza nella cache messaggi non recapitati al POP “RTM” per
/path/sample.jpg - Memorizza nella cache messaggi non recapitati al POP “TOJ” per
/path/sample.jpg
Si prevede che l’immagine venga memorizzata nella cache e servita dalla CDN per 24 ore dopo la prima richiesta, indipendentemente dal POP. Al contrario, a ogni POP viene rilevata una cache che non risponde alla prima richiesta dell’immagine.
Causa
Ogni POP CDN gestisce la propria cache. La prima richiesta di una risorsa a ogni POP genera un errore irreversibile e solo le richieste successive da quel POP vengono servite dalla cache fino alla scadenza del TTL.
Risoluzione resolution
Per risolvere il problema, effettua le seguenti operazioni:
- Assicurati che ogni POP CDN mantenga la propria cache. La prima richiesta per un determinato URL a ogni POP determinerà un MISS della cache; le richieste successive dallo stesso POP (mentre TTL è valido) saranno un HIT della cache.
- Verifica che il servlet imposti intestazioni di cache esplicite sia per il browser che per la rete CDN. Utilizzare
Cache-Control: max-age=86400, publice provare ad aggiungereSurrogate-Controlos-maxageper TTL specifico per CDN, se supportato. - Evita di utilizzare
privateono-storedirettive, in quanto impediscono il caching CDN. - Utilizza strumenti come
curle controlla i registri CDN per confermare che la prima richiesta a ogni POP sia un MISS e che le richieste successive dallo stesso POP all’interno del TTL siano HIT.
Per ulteriori dettagli, consulta la documentazione Memorizzazione in cache CDN di AEM as a Cloud Service.