Quindi desideri utilizzare una CDN per velocizzare l’accesso globale alle risorse comuni sul tuo forum Discourse? Potresti voler fare il grande passo e seguire le istruzioni su Set up file and image uploads to S3 (vedi anche Configure an S3 compatible object storage provider for uploads).
Se desideri una CDN senza la complessità aggiuntiva di S3 e l’avere due CDN, questa è la guida che fa per te. La CDN ridurrà parte del carico sul tuo server consentendo alla CDN di servire tali risorse in modo che il server non debba farlo. Può anche velocizzare le cose consegnando i file da una posizione più vicina all’utente finale.
Registrati con la CDN di tua scelta – CDCK/discourse.org ha utilizzato e raccomanda vivamente Fastly.
La configurazione sarà simile a questa:

Ciò che stai cercando sono tre impostazioni principali:
-
L’indirizzo di origine (origin address), che è l’URL in cui si trova attualmente il tuo forum
discourse.example.com. È qui che la CDN preleverà tutti i suoi contenuti originali alla prima richiesta. -
Il CNAME, che è il nome “amichevole” per la tua CDN che imposterai nel tuo DNS, ad esempio
discourse-cdn.example.com -
L’URL della CDN (CDN URL), che è il nome “meno amichevole” da cui verranno provenienti gli asset CDN memorizzati nella cache tramite la rete mondiale di server distribuiti della CDN. Sarà simile a
637763234.cdn-provider.com
Dovrai modificare il tuo DNS per mappare il CNAME all’URL della CDN, in questo modo:
discourse-cdn.example.com IN CNAME 637763234.cdn-provider.com
(Una volta modificato il DNS, concedi un po’ di tempo per la propagazione.)
La parte di configurazione effettiva di Discourse è piuttosto semplice. Decommenta la riga della CDN nel tuo app.yml e aggiornala con il CNAME che hai appena impostato nel tuo DNS:
## L'indirizzo CDN http o https per questa istanza Discourse (configurata per il pull)
DISCOURSE_CDN_URL: https://discourse-cdn.example.com
L’URL della CDN deve includere un protocollo (https:// o http://). Gli URL relativi al protocollo (che iniziano con //) non sono più supportati e causeranno l’interruzione della compilazione del container.
(Se non vedi questa riga nel tuo app.yml, aggiungila sotto le altre variabili DISCOURSE_)
Come per qualsiasi altra modifica al tuo app.yml, devi ricostruire il container per riflettere le modifiche:
./launcher rebuild app
Una volta ricostruito, naviga verso la tua istanza Discourse nel browser. Visualizza la sorgente e cerca “cdn”. Vedrai che gli asset del sito web provengono ora dalla tua CDN:
<script src="https://discourse-cdn.codinghorror.com/assets/preload_store-4ea79c2f435becca86ac97a9c038f9c7.js"></script>
<script src="https://discourse-cdn.codinghorror.com/assets/locales/en-7084a68855205a9128245d2d0ce94ed9.js"></script>
Questo argomento copre lo scenario più comune di accelerazione degli asset statici. Consulta questo argomento per l’accelerazione CDN dell’intero sito (sia dinamica che degli asset statici) (come fornito da Cloudflare). Cloudflare funziona in modo diverso da una CDN tradizionale, quindi questo non è un argomento appropriato per discutere di Cloudflare.
Altre CDN segnalate come funzionanti includono:
- https://www.keycdn.com/ (CDCK dai primi tempi)
- MaxCDN (@sam: “CDN affidabile” gennaio 2017)
- StackPath (@Victor_Ashiedu giugno 2022)
- Bunny.net (@pfaffman 2023)
- Cloudfront (@pfaffman pensa che CDCK li utilizzi almeno per gli asset S3)
- gcore.com? (@pfaffman si è iscritto, ma non ha testato aprile 2023)