Abilita una CDN per il tuo Discourse

Quindi i file non si sincronizzeranno con il mio sistema, CloudFront si limita a memorizzarli nella cache. Ho ragione?

3 Mi Piace

SÏ, è corretto. La CDN preleva dal tuo sito solo le risorse richieste.

Discourse invierĂ  a S3 sia le risorse statiche (come CSS e JavaScript) sia i file caricati.

4 Mi Piace

È possibile utilizzare le regole di Cloudflare per memorizzare nella cache risorse statiche come CSS e JavaScript?

2 Mi Piace

SĂŹ, lo usiamo in questo modo e funziona bene. Fai molta attenzione a disabilitare tutte le ottimizzazioni JavaScript. Puoi vedere la nostra configurazione qui:

4 Mi Piace

Grazie per la risposta.

Ho giĂ  aggiunto la seconda e la terza regola, ma non ho capito la prima. A cosa serve il reindirizzamento 301??

2 Mi Piace

Non serve; è nella descrizione.

3 Mi Piace

Grazie per la risposta. E per le risorse statiche come CSS e JavaScript? È possibile definire una regola per CSS e JavaScript??

2 Mi Piace

Non l’ho testato. Non sono sicuro che funzionerebbe. Almeno dovresti svuotare la cache di Cloudflare dopo ogni rebuild.

2 Mi Piace

Per me va bene pulire la cache dopo ogni rebuild. Cosa potrebbe andare storto se creo una regola per memorizzare nella cache tutto in https://myforum.com/assets/? Questo influenzerà comunque l’accesso degli utenti? Se mi dai il via libera, lo testerò per una settimana e farò rapporto. Ho ancora una regola inutilizzata.

2 Mi Piace

Per chiarire, è corretto che non utilizziamo questo campo (così come l’URL del CDN) se stiamo utilizzando il CDN di Cloudflare?

Ho configurato cloudflare.template in app.yml secondo la documentazione.

È necessaria un’ulteriore configurazione se si utilizza Cloudflare?

1 Mi Piace

Ho appena utilizzato con successo StackPath come CDN. Funziona come previsto!

2 Mi Piace

È ancora così al giorno d’oggi?

Dal 2019:

Sembra che dobbiamo fare molta attenzione e che perdiamo alcuni dei vantaggi di Cloudflare.

Dal 2020:

Dal 2021:

Quindi, Cloudflare è affidabile ed efficiente con Discourse oggi? La disattivazione della funzionalità “Rocket Loader” riduce al minimo i vantaggi?

Stavo pensando di passare da Stackpath a Bunny CDN, ma il proprietario del dominio del mio forum ed ex amministratore ha un account Cloudflare enterprise (è il proprietario di tinyURL tra l’altro) sul quale potrebbe aggiungere il dominio gratuitamente (Looking for a decrease in the forum fees in the future - #6 by Gilby - Forum Feedback - Unicyclist.com).

Quindi, mi chiedo se sia corretto, indolore ed efficace utilizzare Cloudflare invece di Bunny CDN.

2 Mi Piace

Se si utilizzano molte immagini, ciò che si spenderà per aumentare direttamente gli SSD collegati sarà molto piÚ costoso dei costi equivalenti di S3.

S3 necessita di una CDN davanti per essere conveniente poiché si paga per l’ingress e l’egress, ma è comunque molto più economico che aggiungere semplicemente più SSD ad alta velocità. CloudFlare può essere posizionato davanti a S3, ma la memorizzazione nella cache degli asset è l’unica funzionalità che si può utilizzare in modo affidabile. Posizionare CloudFlare tra il client e il server dell’applicazione aumenterà anche il numero di hop e aumenterà la latenza dell’applicazione. Non è una soluzione magica.

2 Mi Piace

Non siamo ricchi di immagini. L’obiettivo della CDN sarebbe quello di far caricare velocemente gli asset a ogni utente, dato che la nostra community è internazionale (principalmente USA ed Europa).

Usiamo S3, ma solo per archiviare i backup.

1 Mi Piace

Domanda veloce. È obbligatorio un rebake dopo aver cambiato il nostro CDN? O è solo se l’URL del CDN è diverso? O non è necessario affatto?


modifica: o è semplicemente possibile sostituire i vecchi URL nei post cotti con quelli nuovi con uno script rails?

Ad esempio, se ho un post che contiene:

<img class="ytp-thumbnail-image"
src="https://f5i4i8k5.stackpathcdn.com/uploads/default/original/3X/f/3/f3bc5ab19cc0394f33fd008e90ca06e081886a0b.jpeg"
title="Riding a unicycle part 76: Sullivan Canyon - Los Angeles"
width="480"
height="360"
loading="lazy"
style="aspect-ratio: 480 / 360;">

Potrei fare una ricerca e sostituzione delle stringhe da f5i4i8k5.stackpathcdn.com a newcdn.unicyclist.com senza rompere nulla? Sembra sicuro, ma voglio essere sicuro di quello che faccio.

Non mi dispiace rifare il rebake di tutti i miei post, ma il problema che ho affrontato la prima volta è che ho migliaia di video di YouTube incorporati, e il mio IP è stato messo in blacklist da YouTube durante il rebake a causa di troppe richieste a YouTube.

Quindi, se c’è un’alternativa sicura al rebake di tutti i post e affrontare lo stesso fastidioso problema, preferirei optare per l’alternativa…

3 Mi Piace

C’è un rake task che farà una sostituzione. Penso che eseguirlo sia sicuro e una buona idea. Sostituisci una stringa in tutti i post è quello che stai cercando, penso.

2 Mi Piace

Ciao Jay,

Non sono sicuro dell’uso del rake task.
Gli URL CDN sembrano essere presenti nei campi cooked piuttosto che nei campi raw (a meno che il messaggio non sia stato inviato via email).
Da quanto ho capito, post:remap cerca la stringa solo nel campo raw.

Se sostituire gli URL CDN sia nei campi raw che cooked è sicuro, immagino che dovrei procedere con uno script rails personalizzato?

2 Mi Piace

Hai ragione. C’è un’altra . . . cosa . . . che sostituirà una stringa in tutti i campi nel database. È quella che stai cercando. Mi dispiace ma non riesco a trovarla al momento. Ci sono alcuni argomenti sulla migrazione da un s3, ma non sembra esserci un howto.

2 Mi Piace

Grazie per questo indizio!

Immagino sia questo?

DbHelper.remap('from', 'to')

Trovato su Rebaking old posts won't pull new S3 CDN URL after S3 bucket rename - #10 by Brad_Wood

E usato qui:

Se è un’alternativa sicura a un rebake quando si cambia il nostro servizio CDN, un howto potrebbe essere davvero utile.

3 Mi Piace

Oh evvai. Grazie per avermelo fatto sapere. Pensavo che ti sarebbe bastato per trovarlo. Sono contento che tu l’abbia capito.

3 Mi Piace