Programmazione · web · prestazioni
Cos'e una CDN?
Una CDN (content delivery network, rete di distribuzione dei contenuti) e un insieme di server distribuiti in molte posizioni che conservano copie del tuo contenuto statico - immagini, CSS, JavaScript, font, video - e servono ogni visitatore da un server geograficamente vicino. L'obiettivo e semplice: accorciare la distanza che una richiesta deve percorrere, cosi le pagine caricano piu in fretta e il tuo server principale lavora di meno. Se il tuo sito e ospitato in una sola citta, un visitatore dall'altra parte del pianeta non deve piu attraversare il mondo per ogni file.
Il problema che risolve
Quando il tuo sito vive su un solo server, ogni richiesta - da ogni paese - deve raggiungere quella singola macchina e tornare. La distanza costa tempo: piu il visitatore e lontano, piu latenza si accumula, e piu il tuo server si carica man mano che il traffico cresce. Una CDN risponde a entrambi i problemi mettendo copie dei tuoi file piu vicino alle persone e togliendo gran parte del carico di richieste dalla tua origine.
Server edge e punti di presenza
I server che una CDN usa per mettere in cache e servire il contenuto sono spesso chiamati server edge, posti al "bordo" (edge) della rete, vicino agli utenti, anziche alla tua origine centrale. Gruppi di questi sono collocati in data center in tutto il mondo, a volte chiamati punti di presenza (PoP). Quando qualcuno richiede un file, la CDN lo indirizza a un server edge vicino anziche alla tua origine. Poiche quel server e vicino, il viaggio di andata e ritorno e piu corto e la consegna piu rapida.
Cache hit, cache miss e l'origine
Il meccanismo centrale di una CDN e la cache. La prima volta che a un server edge viene chiesto un file che non ha, e un cache miss: l'edge recupera il file dal tuo server di origine, lo invia al visitatore e ne conserva una copia. Il visitatore successivo su quello stesso edge ottiene un cache hit - il file e gia li e viene servito subito, senza toccare affatto l'origine.
richiesta -> server edge piu vicino
cache HIT -> serve la copia conservata (veloce, origine intatta)
cache MISS -> recupera dall'origine, serve, poi conserva per la volta dopo Ecco perche una CDN accelera la consegna e scarica l'origine: una volta che il contenuto e in cache all'edge, la maggior parte delle richieste viene servita senza mai raggiungere il tuo server. Durante un picco di traffico, la rete edge assorbe il grosso del carico.

TTL e invalidazione: mantenere fresca la cache
Una copia in cache non puo vivere per sempre, altrimenti i visitatori continuerebbero a vedere una vecchia versione dopo l'aggiornamento di un file. Due meccanismi gestiscono questo:
- TTL (time to live): a ogni elemento in cache viene data una durata di vita, di solito guidata dagli header di cache HTTP come
Cache-Control. Quando il TTL scade, l'edge tratta l'elemento come obsoleto e ricontrolla l'origine prima di servirlo di nuovo. - Invalidazione (purge): quando distribuisci una modifica e non puoi aspettare il TTL, dici alla CDN di eliminare file specifici dalla cache, cosi la richiesta successiva recupera la versione fresca dall'origine. Un trucco comune che evita del tutto il purge e il cache busting - cambiare il nome del file o aggiungere una versione come parametro, ad esempio
style.abc123.css, cosi da recuperare una nuova URL fresca.
Contenuto statico vs contenuto dinamico
Le CDN brillano con il contenuto statico: file uguali per tutti e che cambiano di rado, come immagini, fogli di stile, script e download. Si mettono in cache in modo pulito e possono essere serviti dall'edge a lungo. Il contenuto dinamico - una dashboard personalizzata, o una risposta che dipende da chi ha effettuato l'accesso - e piu difficile da mettere in cache, perche la risposta cambia a ogni richiesta. Le CDN moderne aiutano comunque qui con funzioni come il riutilizzo della connessione e l'esecuzione di piccoli pezzi di logica all'edge, ma il guadagno classico e maggiore resta mettere in cache le risorse statiche vicino agli utenti.
Cos'altro fa comunemente una CDN
Oltre alla cache, la maggior parte delle CDN include extra utili. Di solito terminano il TLS (HTTPS) all'edge e applicano la compressione cosi i file viaggiano piu piccoli e cifrati. Molte aggiungono anche protezione contro le ondate di traffico e assorbono il carico che altrimenti colpirebbe la tua origine. Tra le CDN reali e molto usate ci sono Cloudflare, Fastly e Akamai; per le librerie open source, CDN pubbliche come jsDelivr servono i pacchetti direttamente da una rete edge globale.
Dove si colloca una CDN rispetto al tuo hosting
Una CDN non sostituisce il tuo hosting - si mette davanti a esso. Il tuo server o VPS resta l'origine che detiene i file reali ed esegue la tua applicazione; la CDN mette in cache e distribuisce copie delle parti memorizzabili. Si abbina anche naturalmente a un reverse proxy davanti alla tua app: il proxy instrada e termina il TLS alla tua origine, mentre la CDN gestisce lo strato edge globale. Ti serve comunque un solido hosting di origine sotto il tutto.
FAQ
Una CDN sostituisce il mio hosting? No. Il tuo hosting e l'origine che memorizza i file reali ed esegue la tua app. Una CDN mette in cache e serve copie delle parti statiche memorizzabili da server vicini ai tuoi visitatori. Ti servono entrambi: un'origine affidabile piu lo strato edge davanti a essa.
Qual e la differenza tra cache hit e cache miss? Un hit significa che il server edge ha gia il file richiesto in cache e lo serve subito. Un miss significa che non ce l'ha, quindi recupera il file dalla tua origine, lo serve e ne conserva una copia cosi che la richiesta successiva sia un hit.
Cos'e il TTL? Time to live: per quanto tempo un elemento in cache e considerato fresco, di solito impostato dagli header di cache HTTP. Quando il TTL scade, l'edge ricontrolla l'origine prima di servire di nuovo l'elemento, cosi gli aggiornamenti alla fine raggiungono tutti.
Una CDN puo mettere in cache contenuto dinamico? In parte. Il contenuto che cambia in base all'utente e difficile da mettere in cache direttamente, ma le CDN lo accelerano comunque con riutilizzo della connessione, compressione e logica all'edge. Il guadagno maggiore e piu semplice resta mettere in cache risorse statiche come immagini, CSS e JavaScript vicino agli utenti.
Il server di origine dietro la tua CDN
Una CDN mette in cache copie del tuo contenuto, ma le serve comunque un vero server di origine che detiene i file sorgente ed esegue la tua app. Infomaniak - un provider svizzero rispettoso della privacy - offre VPS e server cloud da usare come origine, e poi metti una CDN davanti per servire le risorse statiche dall'edge.
Vedi Infomaniak Cloud →Link di affiliazione - aiuta a mantenere gratuite queste guide.