Am I right that cdn can only cache the files in my site and can’t cache hotlinked files from another site?
I store catalogue files (mps and pictures) on another server and hotlink them on my Discourse site. Am I right that such files won’t be cached by cdn? Is there a way to cache the hotlinked files too?
Unless you tell discourse not to, it will pull those remote images to its own image store. The below assumes you turned that off.
You should put that site behind CDN and then share the CDN url to discourse.
If you put a CDN in front of your image site but share the origin url to discourse, You can use a built in feature to replace the origin url with the CDN url .
Am I right, that if I activate the CDN feature in Discourse and switch off saving the origin to Discourse, the cdn service will cache these external files and Discourse will replace all the links to files hotlinked from another site?
I doubt that can caches external files hotlinked from other sites. Can anybody approve it?
FYI - I’ve posted a new thread on how to setup full site CDN acceleration (and SSL termination) using AWS Cloudfront here (link below). There be dragons here - so tread lightly.
Al giorno d’oggi, nel 2023, queste quattro regole devono ancora essere seguite rigorosamente? Ad esempio, se dovessi usare Akamai, progettato per far accelerare il nome di dominio principale con la sua CDN. Qualcuno ha una configurazione distillata delle regole seguenti, ad esempio se il message bus e il long polling debbano ancora essere richiesti all’origine? Dove dovrebbero andare queste impostazioni? L’URL di base del long polling sembra essere stato rimosso dalla dashboard di amministrazione?
Quindi “long polling base url” deve essere impostato tramite la console di Rails. Poiché è stato rimosso dalla dashboard di amministrazione. Devo essermi perso il motivo pubblicato in precedenza per cui è stato rimosso se l’impostazione è ancora necessaria per far funzionare bene il sito in modalità CDN a sito intero.
Allo stesso modo, DISCOURSE_ENABLE_CORS: true deve essere impostato in app.yml.
Dovresti impostarlo con una variabile d’ambiente (DISCOURSE_LONG_POLLING_BASE_URL) nel tuo app.yml. È nascosto perché pochissime persone devono impostarlo e si presume che se lo stai facendo tu sappia cosa stai facendo.
Grazie, @pfaffman! Avrei dovuto sapere che tutte queste variabili in maiuscolo dovrebbero andare in app.yml.
Quindi, quali casi d’uso del message-bus avranno effetto? Ad esempio, una risposta a un post che causa una notifica, ecc.? Farei un test dei casi d’uso per verificare se il message-bus sul mio sito funziona come previsto senza che venga impostato DISCOURSE_LONG_POLLING_BASE_URL.
long_polling_base_url è un’impostazione del sito nascosta, ma può essere impostata dalla console rails se non si utilizza una variabile d’ambiente in app.yml:
Questa lista fornisce sicuramente maggiori approfondimenti su Discourse.
Ho configurato la CDN con il mio sito web, ha raggiunto le cache edge, tuttavia non ho riscontrato problemi con il message-bus con le sue intestazioni di risposta, ma non mi sento ancora sicuro. Né ho impostato le impostazioni CORS.
No, uso Akamai CDN, che supporta la cache di contenuti dinamici.
Dal primo post di questa discussione, sembra che dovrei impostare DISCOURSE_CDN_URL come CDN non full-site, anche se l’URL è lo stesso dell’URL del sito web. Non sono sicuro se impostarlo causi problemi al mio sito e altri risultati irreversibili, alla fine dovrò reinstallare il software da zero. In questo post Full Site CDN Using AWS CloudFront, l’autore non imposta e lascia invariato DISCOURSE_CDN_URL, e non richiede un URL separato per servire message-bus/long-polling. Ho usato questa soluzione e il mio sito web sta funzionando bene finora. L’unico svantaggio della soluzione è che ci sono molti URL relativi (nessun URL di base, poiché il valore di DISCOURSE_CDN_URL è vuoto) presenti nel sorgente della pagina, il che lo fa sembrare un sito web non di livello di produzione.
Facendo seguito alle mie domande, ho trovato un post simile a quello che sto chiedendo in questo post CloudFront not caching static files - #4 by Falco
Apprezzo la risposta di @Falco, in questa configurazione CDN per l’intero sito, posso impostare DISCOURSE_CDN_URL uguale a DISCOURSE_HOSTNAME? Poiché presumo che Full site CDN significhi che la CDN accelera l’URL dell’hostname, il che rende DISCOURSE_CDN_URL uguale a DISCOURSE_HOSTNAME. Ma qui non c’è una documentazione decente a riguardo in meta.
Non hai bisogno di un template per questo, basta configurare bunny per recuperare dal tuo sito discourse e impostare DISCOURSE_CDN_URL all’endpoint cdn fornito da bunny in app.yml