🌐 Reti e infrastrutture

CDN: cosa sono, come funzionano e quando conviene usarle

Content Delivery Network spiegate: nodi edge, cache, intestazioni Cache-Control, anycast e protezione dagli attacchi. Quando una CDN aiuta davvero un sito.

Una CDN (Content Delivery Network) è una rete di server distribuiti in molte località che si mette tra i visitatori e il server del tuo sito, chiamato origine. Invece di far viaggiare ogni richiesta fino all'origine, la CDN serve i contenuti da un nodo vicino all'utente. Il risultato è un sito più rapido, un'origine meno sollecitata e, spesso, una protezione in più contro il traffico anomalo.

Il principio: avvicinare i contenuti

La distanza conta. Una richiesta che attraversa un continente impiega decine di millisecondi solo per il tragitto, e una pagina moderna ne richiede molte: HTML, fogli di stile, script, immagini, font. Ogni scambio aggiunge ritardo.

La CDN ha nodi, detti edge o PoP (Point of Presence), in molte città. Quando un visitatore di Palermo apre un sito ospitato in Germania, la richiesta può fermarsi a un nodo in Italia. Se quel nodo ha già una copia del file, risponde subito; altrimenti la recupera dall'origine, la consegna e la conserva per i visitatori successivi.

Come la CDN si inserisce nel percorso

Esistono due modalità principali:

  1. Tramite DNS: si fa puntare il dominio, o un sottodominio, alla CDN con un record CNAME, oppure si delega l'intera zona DNS al provider della CDN. Da quel momento i visitatori parlano con la CDN, che a sua volta contatta l'origine.
  2. Tramite sottodominio dedicato: solo i file statici vengono serviti da un nome separato, come static.esempio.it, mentre le pagine dinamiche arrivano direttamente dall'origine.

Molte CDN usano l'anycast: lo stesso indirizzo IP viene annunciato da tanti nodi nel mondo, e l'instradamento di Internet porta ciascun utente al nodo topologicamente più vicino.

Cosa si mette in cache e per quanto

La CDN decide cosa conservare in base alle regole che configuri e alle intestazioni HTTP inviate dall'origine. Le più importanti:

Intestazione Esempio Significato
Cache-Control public, max-age=86400 Può essere conservato da tutti per un giorno
Cache-Control private, no-store Non va conservato dalle cache condivise
Cache-Control s-maxage=600 Durata specifica per le cache condivise come la CDN
ETag / Last-Modified valore o data Permettono di verificare se il file è cambiato

Una pratica efficace è dare ai file statici un nome che cambia a ogni versione, per esempio stile.3f9a1c.css, e impostare una durata di cache molto lunga. Quando il file cambia, cambia anche il nome, e la cache non crea problemi.

Attenzione ai contenuti personali

Le pagine che contengono dati dell'utente (area riservata, carrello, pannello di amministrazione) non devono mai finire nella cache condivisa. Una configurazione sbagliata può mostrare a un visitatore la pagina personale di un altro. Escludi esplicitamente questi percorsi e verifica che le risposte con cookie di sessione siano marcate come private.

Svuotare la cache

Quando aggiorni un contenuto senza cambiarne il nome, devi chiedere alla CDN di rimuoverlo dalla cache (operazione chiamata purge). Quasi tutte le CDN permettono di svuotare un singolo indirizzo, un gruppo di file o tutto. Svuotare tutto è comodo ma fa arrivare all'origine, per qualche minuto, un picco di richieste.

I vantaggi oltre la velocità

  • Riduzione del carico sull'origine: la maggior parte delle richieste di file statici si ferma ai nodi edge.
  • Assorbimento dei picchi: un articolo che diventa virale non mette in ginocchio un piccolo server.
  • Protezione da attacchi di negazione del servizio: la capacità di rete della CDN è enormemente superiore a quella di un server singolo, e molti provider filtrano il traffico anomalo.
  • Certificati TLS gestiti: molte CDN rilasciano e rinnovano automaticamente i certificati per il tuo dominio.
  • Nascondere l'origine: se l'indirizzo dell'origine non è pubblico e il server accetta solo traffico dalla CDN, è più difficile attaccarlo direttamente.

Su quest'ultimo punto, un errore comune è proteggere il sito con la CDN e lasciare l'origine raggiungibile da chiunque conosca il suo indirizzo IP, magari ancora visibile in vecchi record DNS. Configura il firewall dell'origine per accettare connessioni web solo dagli intervalli di indirizzi della CDN o tramite un tunnel autenticato.

Quando non serve

Una CDN porta pochi benefici a un servizio usato solo da una rete locale, a un'applicazione interna aziendale o a un sito con pubblico concentrato nella stessa città del server. Aggiunge inoltre un intermediario che vede il traffico in chiaro, perché termina la connessione TLS: è un aspetto da valutare quando il sito tratta dati riservati.

In sintesi

  • Una CDN serve i contenuti da nodi vicini agli utenti, riducendo latenza e carico sull'origine.
  • Si attiva tramite DNS, spesso con anycast per indirizzare ciascuno al nodo più vicino.
  • Le intestazioni Cache-Control determinano cosa viene conservato e per quanto tempo.
  • Escludi sempre dalla cache le pagine personali e proteggi l'origine dall'accesso diretto.
  • Non tutti i siti ne hanno bisogno: valuta pubblico, tipo di contenuti e riservatezza.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica, unisce il rigore dell'analisi tecnica all'attenzione per le persone che usano la tecnologia.

Leggi anche