Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Una Rete per la distribuzione di contenuti è una rete distribuita di server in grado di fornire in modo efficiente contenuti Web agli utenti. Per ridurre la latenza, le reti CDN archiviano il contenuto memorizzato nella cache in server perimetrali prossimi agli utenti finali.
In genere, le reti CDN vengono usate per distribuire contenuti statici, ad esempio immagini, fogli di stile, documenti, script lato client e pagine HTML. I principali vantaggi offerti dall'uso di una rete CDN sono una latenza più bassa e la distribuzione più rapida di contenuto agli utenti, indipendentemente dalla loro posizione geografica in relazione al data center in cui è ospitata l'applicazione. Le reti CDN possono anche contribuire a ridurre il carico in un'applicazione Web, perché l'applicazione non deve gestire le richieste per il contenuto ospitato nella rete CDN.
In Azure, Frontdoor di Azure è la soluzione cdn globale per la distribuzione di contenuto a larghezza di banda elevata ospitata in Azure o in qualsiasi altra posizione. È possibile configurare i livelli Frontdoor di Azure Standard e Premium per memorizzare nella cache il contenuto nella rete perimetrale. È possibile memorizzare nella cache gli oggetti caricati da Archiviazione BLOB di Azure, un'applicazione Web, una macchina virtuale o anche qualsiasi server Web accessibile pubblicamente.
Questo articolo descrive alcune procedure consigliate e considerazioni generali per l'uso di una rete CDN. Per altre informazioni, vedere la documentazione relativa alla memorizzazione nella cache con Frontdoor di Azure.
Come e perché si usa la rete CDN
Gli usi tipici di una rete CDN includono:
Distribuzione di risorse statiche per applicazioni client, spesso da un sito Web. Queste risorse possono essere immagini, fogli di stile, documenti, file, script lato client, pagine HTML, frammenti HTML o qualsiasi altro contenuto che il server non deve modificare per ogni richiesta. L'applicazione può creare elementi in fase di esecuzione e renderli disponibili per la rete CDN (ad esempio, creando un elenco di notizie correnti), ma non lo fa per ogni richiesta.
Distribuzione di contenuto statico e condiviso pubblico a dispositivi quali telefoni cellulari e tablet PC. L'applicazione stessa è un servizio Web che offre un'API ai client in esecuzione sui vari dispositivi. La rete CDN può anche recapitare set di dati statici, tramite il servizio Web, che i client useranno, ad esempio, per generare la propria interfaccia utente. Ad esempio, la rete CDN può essere usata per distribuire documenti JSON o XML.
Distribuzione di interi siti Web costituiti da solo contenuto pubblico statico ai client, senza richiedere risorse di calcolo dedicate.
Trasmettere file video al client su richiesta. I video traggono vantaggio dalla latenza bassa e dalla connettività affidabile disponibili nei centri dati di tutto il mondo che offrono connessioni di rete CDN.
Miglioramento generale dell'esperienza per gli utenti, specialmente quelli che si trovano lontano dal data center che ospita l'applicazione, Questi utenti potrebbero altrimenti riscontrare una latenza più elevata. Gran parte delle dimensioni totali del contenuto in un'applicazione Web è spesso statica e l'utilizzo della rete CDN consente di mantenere le prestazioni e l'esperienza utente complessiva eliminando la necessità di distribuire l'applicazione in più data center. Per un elenco delle località edge di Frontdoor di Azure, vedere Località POP di Frontdoor di Azure per area geografica.
Supporto di soluzioni IoT (Internet delle cose). L'enorme numero di dispositivi e appliance in una soluzione IoT può facilmente sovraccaricare un'applicazione se deve distribuire aggiornamenti firmware direttamente in ogni dispositivo.
Consente di gestire picchi e aumenti della domanda senza richiedere il dimensionamento dell'applicazione, evitando il conseguente aumento dei costi di esecuzione. Ad esempio, quando viene rilasciato un aggiornamento a un sistema operativo per un dispositivo hardware, ad esempio un modello specifico di router o per un dispositivo consumer, ad esempio una smart TV, c'è un picco enorme di domanda perché viene scaricato da milioni di utenti e dispositivi in un breve periodo.
Problematiche
Esistono varie problematiche da considerare quando si pianifica l'uso di una rete CDN.
Distribuzione. Decidere l'origine da cui la rete CDN deve recuperare il contenuto e stabilire se è necessario distribuire tale contenuto in più sistemi di archiviazione. Prendere in considerazione il processo per la distribuzione di contenuto statico e risorse. Ad esempio, potrebbe essere necessario implementare un passaggio separato per caricare il contenuto in Archiviazione BLOB di Azure.
Controllo delle versioni e controllo della cache. Si consideri come aggiornare il contenuto statico e distribuire nuove versioni. Comprendere il modo in cui la rete CDN esegue la memorizzazione nella cache e determina la durata (TTL). Per Frontdoor di Azure, vedere Memorizzazione nella cache con Frontdoor di Azure.
Verifica. Può essere difficile eseguire il test locale delle impostazioni della rete CDN durante lo sviluppo e la verifica di un'applicazione in locale o in un ambiente di staging.
Ottimizzazione motore di ricerca. Il contenuto, come immagini e documenti, viene fornito da un dominio diverso quando si usa la rete CDN e questo approccio può avere un impatto su SEO per tale contenuto.
Sicurezza del contenuto. Non tutte le reti CDN forniscono il controllo degli accessi in base all'identità per il contenuto. il WAF di Frontdoor di Azure protegge le applicazioni da exploit comuni e la sicurezza dell'origine impedisce al traffico di ignorare Frontdoor. Queste funzionalità non sostituiscono l'autorizzazione a livello di applicazione per il contenuto privato. Per altre informazioni, vedi Web application firewall in Frontdoor di Azure e Proteggere il traffico verso le origini di Frontdoor di Azure.
Sicurezza del client. I client potrebbero connettersi da un ambiente che non consente l'accesso alle risorse nella rete CDN. Potrebbe trattarsi di un ambiente con limitazioni di sicurezza che limita l'accesso solo a una serie di origini note oppure di un ambiente che impedisce il caricamento delle risorse da una posizione diversa dall'origine della pagina. Per gestire questi casi è necessaria un'implementazione del fallback.
Resilienza. La rete CDN è un singolo punto di guasto potenziale per un'applicazione.
Gli scenari in cui una rete CDN potrebbe essere meno utile includono:
Se il contenuto ha una bassa frequenza di riscontri, l'accesso potrebbe essere eseguito solo poche volte mentre è valido (determinato dalla relativa impostazione di durata).If the content has a low hit rate, it might be access only only few times while it's valid (determined by its time-to-live setting).
Se i dati sono privati, ad esempio per aziende di grandi dimensioni o ecosistemi di supply chain.
Linee guida generali e procedure consigliate
L'uso di una rete CDN è un ottimo modo per ridurre al minimo il carico sull'applicazione e ottimizzare disponibilità e prestazioni. Valutare l'adozione di questa strategia per tutto il contenuto appropriato e le risorse usate dall'applicazione. Quando si progetta la strategia per l'uso di una rete CDN, tenere presenti i punti nelle sezioni seguenti.
Distribuzione
Potrebbe essere necessario effettuare il provisioning e la distribuzione del contenuto statico in modo indipendente dall'applicazione se non viene inclusa nel pacchetto o nel processo di distribuzione dell'applicazione. Considerare in che modo questo influisce sull'approccio di controllo delle versioni usato per gestire sia i componenti dell'applicazione che il contenuto delle risorse statiche.
Valutare se può essere opportuno usare tecniche di creazione di bundle e minimizzazione per ridurre i tempi di caricamento dei client. La creazione di bundle consente di combinare più file in un unico file. La minimizzazione consente invece di rimuovere i caratteri non necessari da script e file CSS senza modificare la funzionalità.
Se è necessario distribuire il contenuto in un'altra posizione, si tratta di un passaggio aggiuntivo nel processo di distribuzione. Se l'applicazione aggiorna il contenuto per la rete CDN, ad esempio a intervalli regolari o in risposta a un evento, deve archiviare il contenuto aggiornato in qualsiasi altra posizione, nonché l'endpoint per la rete CDN.
Si consideri come gestire lo sviluppo e il test locali quando è previsto che alcuni contenuti statici vengano gestiti da una rete CDN. Ad esempio, è possibile eseguire la distribuzione preliminare del contenuto nella rete CDN come parte dello script di compilazione. In alternativa, è possibile usare direttive di compilazione o flag per controllare la modalità di caricamento delle risorse da parte dell'applicazione. Ad esempio, in modalità debug l'applicazione può caricare le risorse statiche da una cartella locale In modalità di rilascio, l'applicazione utilizzerebbe la CDN.
Valutare se è opportuno usare opzioni per la compressione dei file, ad esempio gzip (GNU zip). La compressione può essere eseguita sul server di origine dall'applicazione Web che ospita o direttamente sui server perimetrali tramite la rete CDN. Per altre informazioni, vedere Migliorare le prestazioni comprimendo i file in Frontdoor di Azure.
Routing e controllo delle versioni
Potrebbe essere necessario gestire versioni diverse del contenuto in diversi momenti. Ad esempio, quando si distribuisce una nuova versione dell'applicazione, è possibile che si voglia rendere disponibile nuovo contenuto e conservare il contenuto precedente (in un formato precedente) per le versioni precedenti. Se si usa Archiviazione BLOB di Azure come origine del contenuto, è possibile archiviare ogni versione in un contenitore di archiviazione BLOB separato. Un'origine di Frontdoor di Azure identifica l'host di un account di archiviazione, non un singolo container. Per distribuire i contenuti da un account di archiviazione diverso, imposta l'origine in modo che punti a tale account. Per distribuire il contenuto da un contenitore diverso nello stesso account, impostare il percorso di origine della route o aggiungere una regola di riscrittura URL che punti al contenitore.
La distribuzione di nuove versioni di contenuto statico quando si aggiorna un'applicazione può essere problematica se le risorse precedenti vengono memorizzate nella cache nella rete CDN. Per altre informazioni, vedere la sezione seguente sul controllo cache.
Valutare la possibilità di limitare l'accesso al contenuto della rete CDN in base al paese o all'area geografica. Frontdoor di Azure usa il WAF per filtrare le richieste in base al paese o all'area geografica da cui proviene una richiesta e limitare il contenuto fornito. Per maggiori informazioni, consulta Filtro geografico in un dominio per Frontdoor di Azure.
Controllo cache
Considerare come gestire la memorizzazione nella cache all'interno del sistema. Ad esempio, in Frontdoor di Azure è possibile impostare regole di memorizzazione nella cache nel motore delle regole e applicare criteri di memorizzazione nella cache personalizzati a percorsi specifici. È anche possibile controllare come viene eseguita la memorizzazione nella cache in una rete CDN inviando le intestazioni delle direttive della cache all'origine.
Per altre informazioni, vedere Memorizzazione nella cache con Frontdoor di Azure.
Per evitare che gli oggetti siano disponibili nella rete CDN, è possibile eliminarli dall'origine, rimuovere o eliminare l'endpoint della rete CDN o per l'archiviazione BLOB, rendere privato il contenitore o il BLOB. Tuttavia, gli elementi non vengono rimossi dalla CDN fino alla scadenza del tempo di vita. È anche possibile ripulire un endpoint della rete CDN manualmente.
Sicurezza
Frontdoor di Azure può distribuire contenuti tramite HTTPS utilizzando un certificato TLS gestito da Microsoft o un certificato personalizzato. Per evitare avvisi del browser relativi al contenuto misto, usare HTTPS per richiedere contenuto statico visualizzato nelle pagine caricate tramite HTTPS. Per altre informazioni, vedere TLS end-to-end con Frontdoor di Azure.
Se si distribuiscono gli asset statici, ad esempio file di caratteri tramite la rete CDN, potrebbero verificarsi problemi relativi ai criteri di origine uguale se si usa una chiamata XMLHttpRequest per richiedere le risorse da un dominio diverso. Molti browser impediscono la condivisione di risorse tra origini (CORS), a meno che il server Web non è configurato per impostare le intestazioni di risposta appropriate. È possibile configurare la rete CDN per il supporto CORS tramite uno dei metodi seguenti:
Configurare la rete CDN in modo che vengano aggiunte intestazioni CORS alle risposte. Per altre informazioni, vedere Configurare CORS con Frontdoor di Azure.
Se l'origine è Archiviazione BLOB di Azure, aggiungere regole CORS all'endpoint di archiviazione. Per ulteriori informazioni, vedere Supporto CORS (Condivisione delle risorse tra origini diverse) per i servizi di archiviazione di Azure.
Configurare l'applicazione in modo da impostare le intestazioni CORS. Ad esempio, vedere Enabling Cross-Origin Requests (CORS) nella documentazione di ASP.NET Core.
Fallback della rete CDN
Valutare il modo in cui l'applicazione si occupa di un errore o di un'indisponibilità temporanea della rete CDN. Le applicazioni client potrebbero essere in grado di usare copie delle risorse memorizzate nella cache in locale (nel client) durante le richieste precedenti oppure è possibile includere codice che rileva l'errore e richiede invece risorse dall'origine (la cartella dell'applicazione o il contenitore Archiviazione BLOB di Azure che contiene le risorse) se la rete CDN non è disponibile.