Una CDN, acronimo di Content Delivery Network, è una rete distribuita di server che permette di consegnare i contenuti di un sito attraverso una rete edge distribuita geograficamente. Non sostituisce l'hosting e non rende automaticamente più veloce qualsiasi sito: il vantaggio dipende dalla distribuzione degli utenti, dal tipo di contenuti e soprattutto da come viene configurata la cache.
Capire come funziona una CDN aiuta quindi a valutare se introdurla davvero nell'architettura di un sito, evitando di considerarla una soluzione universale a problemi che possono dipendere invece dall'hosting, dal database, dal codice applicativo o dalla configurazione del caching.
Cos'è una CDN
Una CDN è un'infrastruttura composta da numerosi server edge distribuiti in diverse aree geografiche. Questi server possono conservare copie in cache delle risorse richieste più frequentemente, come immagini, fogli di stile CSS, file JavaScript, font, video e, quando la configurazione lo consente, anche pagine HTML.
Il sito continua ad avere un server di origine, cioè il server che ospita realmente applicazione, file e database. La CDN si inserisce tra il visitatore e l'origine e, quando dispone della risorsa richiesta nella propria cache, può servirla direttamente senza dover interrogare ogni volta il server principale. Il nodo utilizzato viene scelto dalla rete in base alla propria infrastruttura e alle condizioni della richiesta, non necessariamente in base alla sola distanza geografica.
Per questo motivo una CDN non va confusa con un servizio di hosting. L'hosting conserva ed esegue il sito; la CDN distribuisce e accelera la consegna di determinati contenuti attraverso una rete di punti di presenza.
Come funziona una CDN
Senza CDN, una richiesta HTTP viene normalmente gestita dal server che ospita il sito. Se il server si trova in Europa e il visitatore è in Australia, per esempio, i dati devono percorrere una distanza considerevole prima di raggiungere il browser.
Con una CDN, la richiesta viene intercettata dalla rete CDN e indirizzata verso un nodo edge appropriato. Se il contenuto è già disponibile nella cache, il nodo può rispondere direttamente; in caso di cache miss, la CDN recupera la risorsa dal server di origine e, se le regole lo consentono, la memorizza per le richieste successive.
| Situazione | Cosa succede | Effetto sull'origine |
|---|---|---|
| Cache hit | Il nodo CDN possiede già una copia valida della risorsa | La richiesta non deve arrivare all'origine |
| Cache miss | La CDN deve recuperare la risorsa dall'origine | L'origine deve elaborare la richiesta |
| Contenuto non cacheabile | La richiesta viene normalmente inoltrata all'origine | Il carico resta principalmente sul server del sito |
Il beneficio non consiste quindi semplicemente nell'avere "più server". Quando una risorsa viene servita dalla cache edge, la richiesta non deve raggiungere l'origine e viene consegnata direttamente dalla rete CDN.
Cache e contenuti statici
Il caso più semplice riguarda i contenuti statici. Immagini, CSS, JavaScript, font e altri file che cambiano raramente sono candidati naturali alla distribuzione tramite CDN perché possono essere riutilizzati da molti visitatori senza dover essere rigenerati dal server.
La durata della cache viene determinata dalle regole del servizio CDN e, in molti casi, dagli header HTTP restituiti dal server di origine. Tra questi, Cache-Control permette di indicare direttive come max-age, private, no-cache e no-store. La configurazione deve essere coerente con il tipo di contenuto: una cache troppo aggressiva può mantenere disponibile una versione obsoleta, mentre una cache troppo prudente riduce il numero di richieste che possono essere servite dall'edge.
Per i file statici aggiornati tramite nuove versioni, una strategia efficace è spesso utilizzare nomi o URL versionati, per esempio app.v3.js oppure style.css?v=3, in modo da poter mantenere una cache lunga senza impedire al browser e alla CDN di riconoscere la nuova risorsa.
Una CDN accelera anche le pagine dinamiche?
Non necessariamente. Una pagina dinamica che dipende da sessioni, cookie, autenticazione, dati personalizzati o informazioni che cambiano frequentemente non può essere trattata allo stesso modo di un'immagine o di un file CSS.
Alcune CDN permettono comunque di memorizzare nella cache determinate risposte HTML dinamiche, ma questa scelta richiede regole precise. Bisogna evitare, per esempio, di condividere accidentalmente tra utenti una risposta personalizzata o una pagina contenente dati riservati.
In molti siti la CDN viene quindi utilizzata principalmente per le risorse statiche, mentre HTML dinamico, PHP, chiamate al database e operazioni applicative continuano a essere gestiti dal server di origine. La CDN può comunque ridurre sensibilmente il carico complessivo dell'origine anche senza mettere in cache l'intero sito.
Quali vantaggi offre una CDN
Riduzione della latenza
Il vantaggio più evidente è la possibilità di servire una risorsa da un punto della rete più vicino o meglio collegato al visitatore. La distanza fisica non è l'unico fattore che determina la velocità, ma una rete edge ben distribuita può ridurre la latenza e rendere più rapida la consegna delle risorse.
Minore carico sul server di origine
Quando una risorsa viene servita dalla cache CDN, il server di origine non deve elaborare nuovamente quella richiesta. Questo è particolarmente utile per siti con molte immagini, file statici pesanti o picchi di traffico, perché una parte delle richieste viene assorbita dall'infrastruttura edge.
Maggiore capacità di gestire picchi di traffico
Distribuire i contenuti cacheabili tra più nodi riduce la dipendenza dal singolo server di origine. Una CDN non rende però il sito immune dai problemi di capacità: se l'applicazione, il database o le pagine dinamiche sono il collo di bottiglia, il caching dei file statici non risolve quella parte del problema.
Maggiore resilienza
La distribuzione geografica può migliorare la capacità di assorbire picchi e rendere più robusta la distribuzione dei contenuti cacheabili. Non significa però che l'origine possa essere ignorata: se l'origine non è raggiungibile o l'applicazione non risponde correttamente, le richieste che non possono essere soddisfatte dalla cache restano dipendenti dal server principale.
Funzioni di sicurezza aggiuntive
Molti servizi CDN operano anche come reverse proxy e offrono funzionalità come mitigazione DDoS, gestione dei certificati TLS e Web Application Firewall. Queste funzioni possono aggiungere un livello di protezione davanti all'origine, ma non sostituiscono gli aggiornamenti del software, la corretta configurazione del server e le normali misure di sicurezza applicativa.
Quando conviene usare una CDN
Una CDN tende a essere particolarmente utile quando i visitatori sono distribuiti geograficamente o quando il sito trasferisce molte risorse statiche. Un e-commerce, un sito editoriale ricco di immagini, una piattaforma con file multimediali o un progetto con utenti internazionali sono esempi in cui il beneficio può essere significativo.
Può essere utile anche per un sito prevalentemente locale, ma in questo caso il vantaggio prestazionale può essere più contenuto. Se il server di origine è già vicino alla maggior parte dei visitatori e il sito ha poche risorse statiche, introdurre una CDN potrebbe aggiungere complessità senza produrre un miglioramento percepibile.
| Scenario | Utilità della CDN | Motivo principale |
|---|---|---|
| Sito con pubblico internazionale | Alta | Riduzione della distanza tra utenti e contenuti cacheabili |
| Sito ricco di immagini e file statici | Alta | Distribuzione delle risorse e riduzione delle richieste all'origine |
| E-commerce con traffico distribuito | Medio-alta | Accelerazione degli asset statici e possibile alleggerimento dell'origine |
| Piccolo sito locale con poche risorse | Variabile | Il beneficio geografico può essere limitato |
| Applicazione fortemente dinamica | Variabile | Molte richieste devono comunque raggiungere l'origine |
Cloudflare: CDN, DNS Anycast e protezione anche con il piano gratuito
Un esempio molto conosciuto di infrastruttura che combina DNS, CDN e sicurezza è Cloudflare. Il servizio può essere utilizzato anche con un piano gratuito che mette a disposizione DNS autorevole, CDN, certificato SSL universale e protezione dagli attacchi DDoS.
Il funzionamento è diverso da quello di un semplice DNS che si limita a indicare l'indirizzo IP del server. Quando il dominio utilizza i nameserver Cloudflare e il record della risorsa web è configurato per passare attraverso il proxy, Cloudflare può gestire il traffico HTTP e HTTPS davanti al server di origine, distribuendo i contenuti cacheabili dalla propria rete edge e applicando le funzionalità di sicurezza disponibili.
Il vantaggio del DNS Anycast
Uno degli aspetti interessanti è il DNS autorevole distribuito attraverso una rete Anycast. In una rete Anycast lo stesso servizio può essere raggiunto attraverso più punti della rete, consentendo alle richieste DNS di essere gestite dall'infrastruttura più adatta al percorso di rete. Questo può migliorare i tempi di risposta e la resilienza del servizio DNS.
È importante però distinguere questo beneficio da quello della CDN. Anycast DNS non significa che il sito venga automaticamente servito da un server CDN: il DNS determina come viene risolto il dominio, mentre la CDN entra in gioco quando il traffico web viene effettivamente instradato attraverso il proxy e le relative funzionalità di caching.
Cosa offre il piano gratuito
Per molti siti il piano gratuito può essere sufficiente per iniziare. Cloudflare mette a disposizione nel piano gratuito il DNS, le funzionalità CDN, il certificato Universal SSL e la protezione DDoS, consentendo di aggiungere questi livelli all'architettura esistente senza trasferire il sito su una nuova piattaforma di hosting.
| Funzionalità | Utilità |
|---|---|
| DNS autorevole | Gestione della risoluzione DNS del dominio attraverso la rete Cloudflare |
| Anycast DNS | Distribuzione globale del servizio DNS e maggiore resilienza della risoluzione |
| CDN | Distribuzione dei contenuti cacheabili dalla rete edge |
| Universal SSL | Certificato TLS per le connessioni HTTPS gestite da Cloudflare |
| Protezione DDoS | Mitigazione degli attacchi DDoS attraverso la rete Cloudflare |
Attivare Cloudflare significa cambiare hosting?
No. Utilizzare Cloudflare non richiede di trasferire il sito su Cloudflare né di cambiare il provider che ospita il sito. Il server di origine continua a rimanere presso il proprio hosting, mentre Cloudflare si posiziona davanti all'origine per i servizi che vengono instradati attraverso la sua rete.
Nel normale setup è necessario modificare i nameserver del dominio indicando quelli assegnati da Cloudflare. Prima del cambio è importante verificare che tutti i record DNS necessari siano presenti e corretti, perché una configurazione incompleta può rendere irraggiungibili il sito, la posta elettronica o altri servizi associati al dominio.
La procedura semplificata di HostingRelax
Per i domini gestiti da HostingRelax, il passaggio a Cloudflare può essere effettuato seguendo una procedura semplificata per la configurazione dei nameserver. L'obiettivo è rendere più semplice il collegamento tra il dominio, Cloudflare e il server di origine, riducendo il rischio di errori durante la modifica della delega DNS.
La procedura non cambia il funzionamento di base di Cloudflare: il dominio utilizza i nameserver assegnati da Cloudflare e il servizio continua a gestire il DNS autorevole. Il supporto di HostingRelax serve a semplificare la corretta impostazione del dominio e dei relativi nameserver.
Questo tipo di configurazione è particolarmente utile quando si vuole aggiungere una CDN e un livello di protezione davanti a un sito esistente senza dover modificare l'hosting o trasferire applicazioni e database.
Quando una CDN non risolve il problema
Una CDN non corregge automaticamente un problema di performance dell'origine. Se il server impiega molto tempo a generare una pagina PHP, se il database esegue query inefficienti o se l'applicazione utilizza troppe risorse, il problema rimane soprattutto per le richieste che devono essere elaborate dall'origine.
Prima di introdurre una CDN conviene quindi individuare il collo di bottiglia. Un sito può essere rallentato da un piano hosting inadeguato, da codice non ottimizzato, da plugin pesanti, da un database sovraccarico o da una configurazione di caching inefficiente.
Per questo è utile anche capire quando è il momento di cambiare hosting e conoscere le caratteristiche che determinano la qualità di un piano hosting.
CDN, hosting e caching: non sono la stessa cosa
Hosting, caching applicativo e CDN lavorano a livelli differenti. L'hosting fornisce le risorse necessarie per eseguire il sito; il caching evita di ricalcolare o recuperare inutilmente contenuti già disponibili; la CDN distribuisce le risorse cacheabili attraverso la propria rete edge.
| Tecnologia | Funzione principale | Dove agisce |
|---|---|---|
| Hosting | Esegue e ospita il sito | Server di origine |
| Cache applicativa | Riduce elaborazioni e accessi ripetuti | Applicazione/server |
| Cache browser | Riutilizza risorse già scaricate dall'utente | Browser |
| CDN | Distribuisce contenuti cacheabili dalla rete edge | Rete edge |
Le soluzioni possono essere utilizzate insieme. Un sito ben ottimizzato può avere un hosting adeguato, una cache applicativa correttamente configurata, header HTTP coerenti e una CDN per distribuire le risorse verso utenti geograficamente lontani.
Come scegliere e configurare una CDN
La scelta non dovrebbe basarsi soltanto sul numero di punti di presenza dichiarati dal provider. È più importante verificare dove si trovano gli utenti reali, quali contenuti devono essere distribuiti, quali regole di caching sono disponibili, come vengono gestiti HTTPS, invalidazione e aggiornamento della cache e quali strumenti di monitoraggio sono inclusi.
Prima dell'attivazione è inoltre opportuno stabilire quali URL possono essere messi in cache e quali devono raggiungere sempre l'origine. Cookie, sessioni, aree amministrative, carrelli, checkout e pagine personalizzate richiedono particolare attenzione.
La configurazione DNS può entrare direttamente nel processo di attivazione di una CDN. Per questo è utile conoscere come funzionano i DNS e come vengono configurati, soprattutto quando il servizio richiede di modificare record DNS o nameserver.
CDN e WordPress
Su WordPress una CDN può essere utilizzata per distribuire immagini, fogli di stile, JavaScript, font e altri asset statici. In alcuni casi può essere integrata con sistemi di caching più avanzati, ma è importante evitare sovrapposizioni tra plugin, cache del server e cache CDN che rendano difficile capire quale livello stia servendo una determinata risposta.
La CDN non sostituisce un hosting WordPress adeguato. Se il sito utilizza WooCommerce, per esempio, alcune pagine sono fortemente personalizzate e devono essere escluse o gestite con regole specifiche. Per approfondire la scelta dell'infrastruttura è possibile confrontare le caratteristiche di un hosting WordPress con le esigenze effettive del progetto.
Come valutare se la CDN sta davvero migliorando il sito
L'attivazione della CDN non dovrebbe essere considerata un risultato in sé. È più utile confrontare le prestazioni prima e dopo l'attivazione, osservando tempi di risposta, peso delle risorse, rapporto tra cache hit e cache miss, richieste raggiunte dall'origine e comportamento degli utenti nelle aree geografiche più importanti.
È inoltre importante verificare che le risorse aggiornate vengano effettivamente sostituite quando necessario e che le pagine dinamiche non vengano memorizzate in modo improprio. Una CDN ben configurata deve migliorare il percorso dei contenuti senza introdurre problemi di contenuto obsoleto o di personalizzazione.
Una CDN è sempre necessaria?
No. Per un sito con pubblico concentrato in una sola area geografica, poche risorse statiche e un server di origine già ben collegato alla rete, il vantaggio può essere modesto. In questi casi è spesso più utile intervenire prima su hosting, codice, database, compressione delle risorse e caching HTTP.
La CDN diventa più interessante quando la distribuzione geografica degli utenti, il volume di contenuti statici, i picchi di traffico o le esigenze di protezione rendono conveniente spostare una parte del lavoro dall'origine alla rete edge. La decisione dovrebbe quindi derivare dall'architettura e dal traffico reale del sito, non dall'idea che una CDN sia automaticamente sinonimo di maggiore velocità.
Conclusioni
Una CDN è uno strumento per distribuire contenuti attraverso una rete di server edge e ridurre la distanza tra le risorse cacheabili e gli utenti. I suoi vantaggi principali riguardano latenza, riduzione del carico sull'origine, gestione dei picchi e, a seconda del servizio, sicurezza e resilienza.
Il risultato migliore si ottiene quando la CDN viene inserita in un'architettura già corretta, dopo aver verificato che server di origine, applicazione e caching siano adeguati alle caratteristiche del sito.
Approfondimenti
Valuta l'infrastruttura più adatta al tuo sito
Prima di aggiungere una CDN, verifica che hosting, risorse e caratteristiche del progetto siano coerenti con il traffico e con il tipo di sito che devi gestire.