Discourse e Cloudflare

C’è molta discussione in questa community sull’uso di Cloudflare. Alcune persone dicono che funziona benissimo senza problemi e altre avvertono che il cielo crollerà se lo usano. In ogni caso, la maggior parte di queste informazioni è molto datata, da 2 anni a quasi un decennio fa.


Personalmente, sto usando Cloudflare con Discourse qui nel 2022 senza alcun problema.

Sto minificando/caching completamente tutte le pagine e HTML/CSS/JS, con compressione Brotli. Ho escluso solo /admin dalle prestazioni di Cloudflare per preferenza personale.

Non ho disattivato il Rocket Loader, ma era già disattivato per impostazione predefinita. L’unica altra modifica che ho apportato è stata aggiungere:

- "templates/cloudflare.template.yml"

alle mie impostazioni di app.yml per ripristinare gli IP degli utenti.

Vale anche la pena menzionare che il sito ha funzionato bene anche prima che apportassi una singola modifica.

7 Mi Piace

Va bene, purché tu riconosca che ciò che stai facendo non è assolutamente supportato.

CloudFlare continua a ottimizzare le sue ottimizzazioni e a volte non causano problemi, poi altre volte mandano un sito in ginocchio. Per la maggior parte, l’idea che il proprio sito si rompa senza alcuna azione da parte loro sarebbe piuttosto sgradevole.

Se hai mai visto una ricostruzione, saprai già che la minificazione avviene già all’interno di Discourse. CloudFlare non minifica il sito meglio di quanto faccia già da solo. Hai misurato le prestazioni con e senza CF abilitato?

E non dimenticare che una volta che l’app JavaScript è caricata nel browser, CloudFlare sta effettivamente rallentando il tuo sito. Ogni oncia di traffico tra l’app e il server ora deve anche attraversare la rete CloudFlare, aumentando il numero di hop di rete e con esso la latenza.

Ma se funziona per te, è fantastico. Assicurati solo di disattivarlo prima di chiedere supporto, perché è il primo (e più probabile) colpevole.

10 Mi Piace

Ho la sensazione che la maggior parte (se non tutte) delle paure riguardo all’uso di Cloudflare con Discourse si basi su problemi di anni fa.

Sia Cloudflare che Discourse hanno fatto molta strada negli ultimi dieci anni.

Ho una vasta esperienza con problemi di caching in generale, ed è vero che agli albori, Cloudflare ha rotto molti script, ma è stato piuttosto affidabile per molti anni ormai.

Alcuni degli strumenti di caching più aggressivi rompono sicuramente le cose e richiedono molta ottimizzazione per farli funzionare correttamente. Quel sentimento in generale è ancora valido.

Tuttavia, sei sicuro che l’affermazione che Cloudflare non è supportato da Discourse sia ancora accurata? Discourse ha letteralmente meccanismi integrati per gestire Cloudflare.

Comunque, no, non ho fatto un prima e dopo su https://gtmetrix.com/, ma per me questo è in qualche modo irrilevante perché ho altre ragioni per usare Cloudflare oltre alla semplice velocità, quindi a meno che non abbia causato un calo drammatico (o anche percettibile) della velocità, lo userei comunque.

Pensiero finale: Sì, ogni volta che si utilizza uno strumento CDN/caching/minificazione/ecc., specialmente se si è inesperti, può rompere le cose. Questo è vero per tutti i siti web indipendentemente da come sono costruiti. Ma, l’idea che Cloudflare sia quasi garantito che causi scompiglio su tutti i siti Discourse sembra un’informazione datata, che deve smettere di essere perpetuata.

2 Mi Piace

Il template CloudFlare non è una novità e se ti prendi il tempo di guardare il codice sorgente vedrai che il suo unico scopo è recuperare gli intervalli IP di Cloudflare e modificare nginx per garantire che venga considerato CF-Connecting-IP come vero indirizzo del client, poiché questo è oscurato dal proxy fornito dalla nuvola arancione. Non è una cosa nuova, esiste da almeno sette anni. Puoi usare Cloudflare per nascondere la posizione del tuo server o agire come una CDN economica per i caricamenti, ma in entrambi i casi ti consigliamo di disabilitare tutte le funzionalità di performance e utilizzare una page rule per abilitare la cache nella tua cartella di caricamenti.

Quale beneficio dimostrerebbe un test tramite GTMetrix? Penso che tu abbia una fondamentale incomprensione di come funziona Discourse per citare questo. Discourse non è un sito web, è un’applicazione Javascript. Navigare sul sito non serve pagine HTML statiche al browser. L’applicazione Javascript che si carica nel tuo browser parla direttamente con il server, motivo per cui alcuni elementi della pagina non sembrano ricaricarsi tra un clic e l’altro. La reattività di detta applicazione è determinata solo dalle risorse del server e dalla latenza tra client e server. CloudFlare non può velocizzare la tua istanza Discourse e la sua presenza tra i due sistemi aumenta la latenza.

Quanto sopra si basa su anni di esperienza, non su una sensazione. Discourse ha ancora problemi periodici con Cloudflare. Oltre a oscurare l’IP del tuo server e a risparmiare un po’ di trasferimento dati per i caricamenti, non c’è nulla che Cloudflare possa fare per velocizzare un sito Discourse.

5 Mi Piace

Il modello CloudFlare non è una novità e, se ti prendi il tempo di guardare il codice sorgente, vedrai che il suo unico scopo è recuperare gli intervalli IP di CloudFlare e modificare nginx per garantire che venga considerato l’indirizzo IP del vero client, poiché questo viene oscurato dal proxy fornito dalla nuvola arancione. Non è una cosa nuova, esiste da almeno sette anni. Puoi usare Cloudflare per nascondere la posizione del tuo server o agire come una CDN economica per i caricamenti, ma in entrambi i casi ti consigliamo di disabilitare tutte le funzionalità di performance e utilizzare una page rule per abilitare la cache nella tua cartella di caricamenti.

Giusto, il mio punto era che se Cloudflare non fosse supportato, non si prenderebbero la briga di aggiungere alcun tipo di supporto ufficiale in primo luogo. Non avrebbero nemmeno tutorial ufficiali su come usarlo. Certo, potrebbero sconsigliarne l’uso a causa di X, Y e Z in alcuni casi, ma ciò non equivale a dire che qualcosa sia completamente non supportato. :skull_and_crossbones:

Quale beneficio dimostrerebbe il test tramite GTMetrix? Penso che tu abbia una comprensione fondamentale di come funziona Discourse per citare questo. Discourse non è un sito web, è un’applicazione Javascript. Navigare sul sito non invia pagine HTML statiche al browser. L’applicazione Javascript che si carica nel tuo browser comunica direttamente con il server, motivo per cui alcuni elementi della pagina non sembrano ricaricarsi tra un clic e l’altro. La reattività di tale applicazione è determinata solo dalle risorse del server e dalla latenza tra client e server. CloudFlare non può velocizzare la tua istanza Discourse e la sua presenza tra i due sistemi aumenta la latenza.

Sì, capisco che Discourse non sia un sito web. È una piattaforma per la distribuzione di contenuti come qualsiasi altra piattaforma/software/CMS. Naturalmente Cloudflare non può influire su nulla a livello di server, il che è particolarmente vero per le configurazioni LAMP. Ma, in definitiva, ogni piattaforma deve alla fine distribuire tutto il codice lato client (HTML/CSS/JS). Naturalmente GTmetrix non può analizzare la velocità lato server, ma puoi comunque ricavare alcune informazioni sull’output finale della tua configurazione. In altre parole, su come l’utente sperimenta il caricamento dei contenuti.

Cloudflare in realtà non velocizza molto un sito web, non in modo così drastico come le ottimizzazioni lato server e le migliori risorse del server. Su questo siamo pienamente d’accordo. Il suo obiettivo principale è l’ottimizzazione del DNS. Ci sono alcune funzionalità CDN più avanzate per gli account a pagamento, soprattutto per quanto riguarda le immagini, ma non ho mai nemmeno utilizzato un account a pagamento. Mi chiedo se siano proprio alcune di queste funzionalità avanzate quelle che causano più problemi e richiedono aiuto?

Quanto sopra si basa su anni di esperienza, non su una sensazione. Discourse ha ancora problemi periodici con Cloudflare. Oltre a oscurare l’IP del tuo server e a risparmiare un po’ di trasferimento dati per i caricamenti, non c’è nulla che Cloudflare possa fare per velocizzare un sito Discourse.

Dannazione. Sapevo che mi avresti criticato per aver detto “sensazione”, ma è solo un modo di dire. Parlo anche per esperienza. :stuck_out_tongue_closed_eyes:

Non metterei in dubbio il fatto che, in qualità di Leader nella community ufficiale di Discourse, tu abbia ovviamente più esperienza con Discourse e abbia chiaramente visto ogni sorta di problemi bizzarri causati da Cloudflare.

Oltre ad addentrarci nei meandri di tutte le sfumature di Cloudflare/Discourse, continuo a sostenere il mio punto principale, ovvero che Cloudflare non è affatto spaventoso come la narrazione in questo forum farebbe credere alla maggior parte delle persone.

Detto questo, capisco anche la gestione delle community e ovviamente non tutti sono sviluppatori o anche solo esperti di tecnologia. In questo senso, posso capire perché essere sommersi da persone che pensano che Discourse sia rotto quando è solo Cloudflare o qualcosa di simile possa diventare fastidioso.

3 Mi Piace

Questo è il punto. “Non supportato” non significa “impossibile”, ma “buona fortuna”. Una risposta frequente a “c’è un bug” è “scompare se disattivi Cloudflare”?

Se vuoi accelerare le cose, usa una vera CDN: - Abilita una CDN per il tuo Discourse

6 Mi Piace

Oppure, sai, se qualcuno vuole un’opzione completamente gratuita o altrimenti vuole semplicemente usare Cloudflare, può farlo, nessun problema.

Stai citando una raccomandazione di quasi un decennio fa. Le cose cambiano. Mi piacerebbe molto vedere uno degli sviluppatori ufficiali intervenire su questo nel 2022. Suppongo che direbbe che le cose sono molto più stabili, e inoltre, qualsiasi raccomandazione sul non scherzare con JS è probabilmente la raccomandazione per tutte le CDN, non solo per Cloudflare.

Per favore, non taggare i membri del team, se vogliono intervenire lo faranno.

3 Mi Piace

???

Ho taggato il creatore di Discourse. Possiamo andare avanti e indietro tutto il giorno su dove si posiziona Discourse nel 2022 per quanto riguarda Cloudflare, ma finché non lo sentiamo direttamente dalla fonte, è più speculazione che una risposta definitiva.

Come potrebbe mai sapere che qualcuno sta chiedendo le sue opinioni per poter intervenire se non viene taggato?

La settimana scorsa c’è stato un problema relativo a persone che vedevano annunci quando non avrebbero dovuto, ed era abbastanza chiaro che fosse un problema con Cloudflare. Disattivarlo è sempre una delle prime cose da fare. Molte persone che cercano supporto qui sono principianti assoluti e l’obiettivo è rendere le cose il più semplici possibile. Se funziona per te, ottimo. Se vuoi rispondere a venti o più post a settimana che

Ma non è vero. Se usi una vera CDN, gli utenti di Discourse la usano solo per le cose che dovrebbero essere servite dalla CDN.

Ehi @JammyDodger, penso che sia ora di una FAQ su Cloudflare (anche se non è la prima volta che lo suggerisco). Puoi chiedere a Jeff e Sam di intervenire.

4 Mi Piace

Ecco il punto. La memorizzazione nella cache/combinazione/minificazione rompe notoriamente il JS, indipendentemente dal software o dalla combinazione di CDN utilizzata. Ho visto questo problema comune con una dozzina di altri strumenti/servizi. Quando si ha a che fare con principianti, la loro cache del browser da sola è un costante fastidio di cui educarli. Ho gestito grandi community di software in passato; sono ben consapevole dello stesso vecchio problema che si ripresenta ancora e ancora.

Mi chiedo, questo è davvero un problema specifico di Cloudflare O è un problema comune che tutti gli strumenti di ottimizzazione hanno, dove possono rompere il JS e succede solo che, a causa della popolarità di Cloudflare, questo problema generale viene erroneamente confuso come un problema di Cloudflare. Ha senso questa distinzione?

In ogni caso, sì, mi piacerebbe che gli sviluppatori ufficiali dicessero la loro su questo e un FAQ aggiornato sarebbe molto utile. Sto ricevendo molte resistenze, ma non sto cercando di causare problemi. È solo frustrante che la community sia piena di così tante contraddizioni su questo; sto solo cercando di arrivare al fondo della questione su come stanno veramente le cose nel 2022.

Ma, se non posso, se non possiamo, va bene. Godetevi il resto del fine settimana a tutti. Lascerò stare il povero :horse: ora.

2 Mi Piace

No, non è vero. Vediamo problemi con Cloudflare in combinazione con Discourse molto frequentemente.

Non esiste una cosa come il “supporto”. Ma se non sai cosa stai facendo, può causare problemi e anche se sai cosa stai facendo, potresti incontrare problemi imprevisti.

I vantaggi in termini di prestazioni di Cloudflare, se presenti, saranno piccoli. La maggior parte degli asset serviti da Discourse sono ben compressi e immutabili (cioè, vengono memorizzati nella cache del browser per molto tempo). La maggior parte degli altri contenuti non è memorizzabile nella cache perché sono dati applicativi personalizzati.

Detto questo, Cloudflare può essere molto utile per la protezione DDoS.

5 Mi Piace

Sarebbe ben accetto dato che abbiamo opinioni contrastanti da diversi utenti :person_shrugging:

1 Mi Piace

Abbiamo una FAQ per Cloudflare e su come configurarlo (o non configurarlo) per Discourse. Si applica anche alle istanze self-hosted.

6 Mi Piace

Non lo metto in dubbio, ma penso che tu abbia perso la distinzione che stavo cercando di approfondire. È effettivamente Cloudflare il problema specifico, o è davvero solo il fatto che strumenti di ottimizzazione di questo tipo possono facilmente rompere JS in generale? E la maggior parte delle persone usa Cloudflare per via della sua popolarità, creando una falsa associazione.

Sarebbe come incolpare Gmail o GoDaddy per problemi intrinseci a tutti i servizi di posta elettronica o di hosting.

E se ci fosse un altro CDN più popolare di Cloudflare, vedresti altrettante strane richieste di supporto su quel servizio.

Anche se non sei d’accordo, capisci cosa intendo?

3 Mi Piace

Dato che dobbiamo evitare determinate impostazioni, e gli utenti di meta hanno detto cose come

Tutto ciò che CloudFlare può fare per te è nascondere il tuo IP e fungere da CDN per i tuoi caricamenti. I vantaggi sono minimi

e

I vantaggi prestazionali di Cloudflare, se presenti, saranno piccoli.

Esiste una risposta definitiva e chiara alla domanda “Senza abilitare alcuna impostazione di velocità, Cloudflare offre qualche vantaggio rispetto a Bunny CDN o Stackpath (o a qualsiasi CDN “normale”, suppongo)”?

Sono ancora indeciso tra Bunny, che ridurrebbe notevolmente i miei attuali costi CDN (Stackpath), e Cloudflare, che nel mio caso sarebbe gratuito (il proprietario del dominio può aggiungere il mio forum al suo account enterprise).

Inoltre, cose che non capisco perché non sono esperto di tecnologia.

2 Mi Piace

Non si tratta solo di rompere JS. Si tratta anche di proxying e di rendere inaccessibile la porta 80, di rompere LetsEncrypt e di alcuni di questi servizi che memorizzano nella cache più di quanto dovrebbero.

Poiché Cloudflare è il più grande di questi “strumenti di ottimizzazione di questa natura”, ed è diffuso, popolare e gratuito, è quello attorno a cui si concentrano la maggior parte delle discussioni. Ma sì, hai ragione. È un problema di strumenti come questo in generale.

Quindi, sì, sono d’accordo.

Argomenti come questi tendono ad essere un po’ pericolosi in natura poiché le persone (specialmente nel gruppo target “problematico”) non tendono a leggere molto bene. È come postare in un argomento sui pericoli dell’abuso di droghe o alcol e affermare “no ragazzi, non è solo un problema di droghe e alcol, io uso droghe senza problemi, e non dimenticate gente: l’abuso di qualsiasi sostanza è pericoloso”. (Sì, lo so. Ogni metafora ha i suoi limiti, ma è il meglio che ho potuto pensare).

E possiamo dire quanto sono pericolose le cose a gran voce quanto vogliamo, ma la gente le userà comunque.
Ecco perché abbiamo creato una FAQ :wink:

10 Mi Piace

Una nuova guida FAQ sembra un’ottima idea. Il link di Communiteq non era molto robusto.

Qui su questo forum, alcune persone stanno creando regole generali Cache Level: Bypass, Disable Performance, tuttavia, stanno permettendo a Cloudflare di memorizzare nella cache immagini o css. Non ho visto una risposta ufficiale se questo sia un sì o un no…

Invece di dire di non usare Cloudflare, e poi gestire i casi problematici, forse sarebbe bene proporre ciò che si dovrebbe e non si dovrebbe fare. Quindi un rapido riferimento a quel post in futuro risponderà a quelle domande.

Solo l’opinione di un uomo.

1 Mi Piace

@RGJ — Grazie! Molte persone potrebbero non vedere né capire il senso della mia distinzione o quale differenza faccia, ma per me porta molta chiarezza. Mi frustro molto senza chiarezza, perché senza quella base iniziale e solida, non so quale strada intraprendere per concentrarmi ulteriormente e acquisire una migliore comprensione di un particolare argomento.

1 Mi Piace

Se hai commenti specifici, mi piacerebbe sentirli.

Per quanto riguarda la cache, direi che non è un “sì” o un “no”, ma più un “meh”:

1 Mi Piace