È corretto dire che la CDN può memorizzare nella cache solo i file del mio sito e non può memorizzare nella cache i file hotlinkati da un altro sito?
Archivio i file del catalogo (mps e immagini) su un altro server e li hotlinko sul mio sito Discourse. È corretto che tali file non vengano memorizzati nella cache dalla CDN? Esiste un modo per memorizzare nella cache anche i file hotlinkati?
A meno che non si dica a Discourse di non farlo, esso scaricherà quelle immagini remote nel proprio archivio immagini. Quanto segue presuppone che tu abbia disattivato tale funzione.
Dovresti mettere quel sito dietro una CDN e poi condividere l’URL della CDN con Discourse.
Se metti una CDN davanti al tuo sito di immagini ma condividi l’URL di origine con Discourse, puoi utilizzare una funzione integrata per sostituire l’URL di origine con l’URL della CDN.
Ho ragione nel pensare che, se attivo la funzionalità CDN in Discourse e disattivo il salvataggio dell’origine su Discourse, il servizio CDN memorizzerà nella cache questi file esterni e Discourse sostituirà tutti i collegamenti ai file hotlinkati da un altro sito?
Dubito che possa memorizzare nella cache file esterni hotlinkati da altri siti. Qualcuno può confermarlo?
FYI - Ho pubblicato un nuovo thread su come configurare l’accelerazione CDN completa del sito (e la terminazione SSL) utilizzando AWS Cloudfront qui (link in basso). Qui ci sono draghi, quindi procedi con cautela.
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