Best practice per la pubblicazione di contenuti

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:

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.

Mappa di valori chiave Cloud CDN (fai clic per ingrandire).

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:

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 e s-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 da s-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 o file_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.