Questa pagina fornisce le best practice per ottimizzare e accelerare la distribuzione dei contenuti con Cloud CDN. Le sezioni sono suddivise in diverse aree chiave.
Cloud CDN utilizza un bilanciatore del carico delle applicazioni esterno come origine per i contenuti memorizzabili nella cache. Un bilanciatore del carico delle applicazioni esterno può distribuire un mix di contenuti statici e creati dinamicamente agli utenti tramite un unico indirizzo IP globale dai seguenti tipi di backend:
- Gruppi di istanze
- Gruppi di endpoint di rete a livello di zona (NEG)
- NEG serverless: uno o altro App Engine, Cloud Run, o funzioni di Cloud Run
- NEG internet per i backend esterni
- Bucket in Cloud Storage
Grazie all'integrazione perfetta con Google Cloud, puoi diverse opzioni per il deployment di Cloud CDN e la gestione dei contenuti. Utilizza le best practice elencate di seguito per pianificare e perfezionare il deployment. Per saperne di più, vedi Configurare Cloud CDN.
Ottimizza il rapporto di hit della cache
Le seguenti best practice consigliate consentono di ottimizzare il rapporto di hit della cache.
Memorizza contenuto statico nella cache
Come best practice per migliorare le prestazioni, quando abiliti Cloud CDN, devi scegliere la modalità cache più adatta per la tua applicazione.
Il metodo più flessibile e generalmente preferito per gestire le regole di cache è: utilizzando l'intestazione Cache Control. Se non hai dimestichezza con l'utilizzo delle intestazioni cache-control dell'origine, ti consigliamo di consentire a Cloud CDN di memorizzare automaticamente nella cache i contenuti statici.
Per memorizzare nella cache automaticamente le risposte statiche dell'origine, puoi utilizzare l'impostazione--cache-mode=CACHE_ALL_STATIC
(predefinita). Questa impostazione consente
Cloud CDN memorizza i contenuti statici comuni nella cache
quando l'origine non specifica alcun tipo
di memorizzazione nella cache nelle intestazioni della risposta. Assicurati che i contenuti corrispondano alle categorie descritte. In caso contrario, i contenuti non vengono memorizzati nella cache.
Non memorizzare nella cache contenuti specifici dell'utente
In alcuni casi, i browser possono memorizzare nella cache contenuti specifici per l'utente. Non utilizzare Cloud CDN per memorizzare nella cache contenuti specifici per l'utente.
Utilizza chiavi di cache personalizzate per migliorare il rapporto di hit della cache
Per ottenere prestazioni e scalabilità, è importante ottimizzare il percentuale successi cache. Per impostazione predefinita, Cloud CDN utilizza l'URL della richiesta completo per creare la chiave cache. Per ottimizzare la percentuale di successi della cache, puoi utilizzare chiavi cache personalizzate in modo che Cloud CDN non esegue shard inutilmente della cache.
Le chiavi della cache personalizzate ti consentono di includere o omettere qualsiasi combinazione di protocollo, host e stringa di query. Di seguito sono riportati alcuni esempi di casi in cui potresti utilizzare la cache personalizzata chiavi:
Hai due host che si risolvono nello stesso indirizzo IP e passano allo stesso completamente gestito di Google Cloud. In questo esempio, l'intero sito web è lo stesso nei due . Per impostazione predefinita, Cloud CDN memorizza nella cache due copie a causa dell'intestazione
Host:
diversa nelle richieste HTTP. Con una chiave della cache personalizzata, puoi fare in modo che Cloud CDN ignori la parte dell'host della richiesta e condivida le voci della cache.In un esempio più specifico, potresti avere due siti web su domini diversi che utilizzano lo stesso logo. I contenuti del sito web sono diversi, ma utilizzi lo stesso logo aziendale su entrambi i domini e hai un servizio di backend dedicato che contiene i contenuti condivisi. Quando attivi Cloud CDN e personalizzi le chiavi della cache per il servizio di backend che contiene il logo, deseleziona la casella di controllo Host in modo che la cache ignori il dominio, ma memorizzi il logo.
Deve essere memorizzato nella cache un logo visualizzato tramite HTTP o HTTPS. Quando personalizzi le chiavi della cache per il servizio di backend che contiene il logo, deseleziona la casella di controllo Protocollo in modo che le richieste tramite HTTP e HTTPS vengano conteggiate come corrispondenze per la voce della cache del logo.
Per informazioni su come personalizzare le chiavi cache, consulta la sezione Utilizzo della cache. chiave.
Ottimizzazione del rendimento
Le seguenti pratiche consigliate consentono di ottimizzare le prestazioni.
Assicurati che il supporto dei protocolli HTTP/3 e QUIC sia abilitato
HTTP/3 è un protocollo internet di nuova generazione. Si basa su QUIC, un protocollo sviluppato dal QUIC originale di Google ) (gQUIC). HTTP/3 è supportato tra il bilanciatore del carico HTTP(S) esterno, Cloud CDN e i client.
Per aumentare le prestazioni con Cloud CDN, assicurati che HTTP/3 sia abilitato.
Utilizzo della memorizzazione negativa nella cache
La memorizzazione nella cache negativa fornisce un'esperienza controllo sulla memorizzazione nella cache per errori o reindirizzamenti comuni. Quando Cloud CDN incontra codici di risposta specifici, memorizza la risposta nella cache per un TTL impostato. Ciò può ridurre il carico sulle origini e migliorare l'esperienza dell'utente finale riducendo la latenza di risposta.
Ottimizzare la sicurezza
Le seguenti pratiche consigliate aiutano a ottimizzare la sicurezza.
Utilizzare Google Cloud Armor
Google Cloud Armor si integra con Cloud CDN sia per i contenuti memorizzati nella cache sia per quelli non memorizzati nella cache o con mancata corrispondenza nella cache. Una best practice consiglia di utilizzare Google Cloud Armor in combinazione con Cloud CDN, ove possibile, per aumentare la sicurezza delle applicazioni web.
Utilizzare gli URL firmati
Se utilizzi URL firmati, tieni presente quanto segue:
Mantieni i contenuti pubblici e privati in bucket Cloud Storage separati.
Autentica le origini private
L'autenticazione dell'origine offre una garanzia solida che la richiesta proviene solo dal tuo servizio di backend configurato. Offre inoltre protezione dei dati in transito per la richiesta e protegge dal riutilizzo della parte firmata della richiesta.
Ti consigliamo di utilizzare l'autenticazione dell'origine privata per i bucket Amazon S3 o gli archivi di oggetti compatibili. Origine privata l'autenticazione contribuisce a garantire che solo le connessioni attendibili accedano ai contenuti dei tuoi da origini private e che gli utenti non vi accedano direttamente.
Inoltre, se i firewall di origine impediscono l'accesso all'origine, utilizza la lista consentita IP per assicurarti che una richiesta provenga da Cloud CDN o dall'Application Load Balancer esterno. Tuttavia, ciò non impedisce ad altri Media CDN ai clienti di tentare di accedere ai tuoi contenuti specificando la tua origine nel e la relativa configurazione.
Ottimizza la cache
Le seguenti best practice consigliate aiutano a ottimizzare la cache.
Ottimizza i TTL della cache
Puoi impostare o eseguire l'override dei TTL per ottimizzare la durata delle cache di Cloud CDN le tue risposte e quando Cloud CDN riconvalida le tue risposte.
Puoi anche definire un TTL rivolto al client per sfruttare al meglio le cache del browser.
Per ulteriori informazioni, consulta la sezione Utilizzare le impostazioni e gli override TTL.
Impostare la scadenza per i contenuti urgenti
A ogni contenuto della cache Cloud CDN è associata una data di scadenza ed è importante impostare una scadenza appropriata per il tuo caso d'uso. Poiché i server di origine devono inviare nuovamente i contenuti che scadono sui server cache, devi scegliere la scadenza con attenzione.
Un metodo per scegliere la scadenza è classificare i contenuti in base alla frequenza con cui li aggiorni; Ad esempio:
- Aggiornamenti in tempo quasi reale, come feed in tempo reale per eventi sportivi o traffico
- Aggiornamenti frequenti, come informazioni meteo settimanali, giornaliere o orarie oppure immagini delle notizie in prima pagina
- Aggiornamenti non frequenti, ad esempio il logo di un sito web oppure file CSS o JavaScript
Quindi scegli la scadenza in base alla categoria di contenuti. Ad esempio, un'ora di scadenza potrebbe essere appropriata per i risultati sportivi quasi in tempo reale e un'ora di scadenza potrebbe essere utilizzata per gli aggiornamenti meteo. Per i contenuti archiviati in Cloud Storage, imposta le scadenze utilizzando i metadati Cache-Control
.
Quando i contenuti vengono pubblicati da Compute Engine, puoi controllare i tempi di scadenza
configurando il software del server web.
Le date di scadenza sono specificate dai valori max-age
e s-maxage
nell'intestazione Cache-Control
. Questa intestazione è definita dalla
specifica HTTP.
Ad esempio, la seguente intestazione Cache-Control
rende i contenuti associati pubblicamente leggibili e memorizzabili nella cache con una scadenza della cache di 72 ore (259200 secondi):
Cache-Control: public, max-age=259200
Per massimizzare la memorizzazione nella cache, segui le linee guida nella Panoramica della memorizzazione nella cache. Ricorda che i valori max-age
e s-maxage
nel campo dei metadati Cache-Control
interagiscono nel seguente modo:
- I valori
max-age
es-maxage
vengono misurati in secondi. - Il valore
s-maxage
si applica solo alle cache condivise, non alle cache del browser. - Il valore
max-age
si applica a tutte le cache, a meno che non venga sostituito das-maxage
.
Per i contenuti che cambiano di rado o che devono cambiare insieme ai contenuti correlati, spesso è opportuno utilizzare una scadenza lunga in combinazione con gli URL con versione.
Utilizzare URL con controllo delle versioni per aggiornare i contenuti
La gestione delle versioni dei contenuti consente di pubblicare una versione diversa degli stessi contenuti, rimuovendoli di fatto mostrando agli utenti nuovi contenuti prima della scadenza della voce della cache. Poiché la gestione delle versioni è gratuita, ti consigliamo di utilizzarla come approccio predefinito per aggiornare i contenuti cacheabili.
Per i contenuti della versione, aggiungi un parametro all'URL, ad esempio un numero di versione. Esistono diversi modi per includere parametri negli URL, ad esempio:
Aggiungi una stringa di query:
file.ext?v=100
.Per i bucket di backend, deve essere specificata qualsiasi stringa di query utilizzata per il controllo delle versioni nella configurazione del bucket di backend. Per ulteriori informazioni, consulta Elenco di inclusione delle stringhe di query per le chiavi della cache Cloud Storage.
Modifica il nome del file:
file.1.0.0.ext
ofile_v100.ext
.Modifica il percorso:
/v100/file.ext
.
Quando aggiungi il parametro, modifichi il nome del file e l'URL. Questa modifica forza la cache a ignorare qualsiasi voce della cache esistente.
Utilizza con parsimonia l'annullamento della convalida per rimuovere i contenuti
L'annullamento della convalida rimuove i contenuti dai server della cache distribuita di Cloud CDN prima della scadenza della voce della cache. L'invalidazione è a coerenza finale.
Ti consigliamo di utilizzare l'annullamento della convalida con parsimonia e solo come ultima risorsa. Ad esempio, l'annullamento della convalida è utile quando devi rimuovere contenuti per motivi legali motivi o a un caricamento accidentale. In caso contrario, ti consigliamo utilizzi il controllo delle versioni quando possibile o attendi che i contenuti scadano normalmente. I server cache di Cloud CDN espellono regolarmente i contenuti a cui si accede raramente per fare spazio ai nuovi contenuti. Contenuti a cui non si accede per 30 giorni viene rimosso incondizionatamente.
Le invalidazioni della cache sono con limitazioni di frequenza.
Per scoprire di più sull'annullamento della convalida, consulta la Panoramica dell'annullamento della convalida della cache.
Ottimizza la coerenza dei file caricati
Le seguenti pratiche consigliate consentono di ottimizzare la coerenza dei caricamenti di file.
Evita di aggiornare i file esistenti
Anziché aggiornare i file esistenti, carica nuove versioni.
Per i nuovi file, utilizza nomi univoci che possono includere numeri di versione o date.
L'aggiunta di un numero di versione (ad es. file_v2.css
) o di una data (ad es.
file_20230806.js
) al nome del file contribuisce ad assicurarti che Cloud CDN recupero la versione corretta e aggiornata. Aggiunta di un parametro all'URL del file (ad esempio,
file.css?v=2
) di forzare il recupero di una nuova versione non è consigliato perché
Questo approccio non affronta il rischio di memorizzare nella cache un file di origine non atomico
di aggiornamento, in cui i file parziali o incompleti possono ancora essere memorizzati nella cache.
È fondamentale caricare nuove versioni delle dipendenze prima di caricare i file che li rimandano. Questa prassi aiuta ad assicurare che tutti i riferimenti siano a completi e aggiornati, riducendo così il rischio di pubblicare troncati.
Apportare aggiornamenti atomici ai file
Quando è necessario aggiornare i file esistenti, procedi a livello atomico.
Se accedi a un file e memorizzalo nella cache prima del completamento di un caricamento, potrebbe
memorizzato nella cache come file incompleto o troncato. Ad esempio, un file come
/index.html
, non può avere un nome univoco, ma può puntare ad altri file con
nomi univoci.
Il caricamento di un file con il nome target può comportare la memorizzazione nella cache di file incompleti quando vengono acceduti durante il caricamento. Carica il file in un percorso nome temporaneo e rinominalo con il nome della destinazione solo dopo che è stato eseguito il caricamento completato. Questa pratica contribuisce a garantire che il file sia completamente e immediatamente disponibile quando viene fatto riferimento.
Quando vengono aggiornati i file esistenti, viene applicata la memorizzazione nella cache per intervallo di byte
può comportare la conservazione degli intervalli di conservazione del file precedente dopo il nuovo
il file è stato caricato. Se Cloud CDN ha memorizzato nella cache intervalli del file precedente,
le richieste dei chunk mancanti possono comportare risposte parziali. Ciò accade
poiché Cloud CDN rileva che il file di origine è stato modificato
(perché etag
o last-modified
vengono modificate), elimina i contenuti obsoleti,
disconnette i download in corso e genera un errore, che richiede
il client a riprovare. Per risolvere il problema, è necessario
per i file memorizzati nella cache con intervalli di byte in fase di aggiornamento.
Ottimizza il monitoraggio e il logging
Le seguenti pratiche consigliate consentono di ottimizzare Monitoring e Logging.
Assicurati che il logging sia abilitato per Cloud CDN
Una best practice per la gestione di Cloud CDN è assicurarsi che il logging sia attivato per tutti i backend abilitati di Cloud CDN.
Usa la dashboard di monitoraggio personalizzata per Cloud CDN
Per garantire maggiore affidabilità e prestazioni, una best practice è esaminare regolarmente le metriche di monitoraggio relative a Cloud CDN. Un ottimo punto di partenza è la dashboard di monitoraggio personalizzato Cloud CDN.
Esaminare i test sul rendimento di terze parti
Esamina i report di fornitori di terze parti, ad esempio i report su disponibilità, latenza e throughput forniti da Citrix Radar.