Utilizzo di Discourse con Cloudflare
Questa guida spiega come configurare e utilizzare Discourse con Cloudflare, incluse le migliori pratiche di sicurezza e suggerimenti per la risoluzione dei problemi.
Livello utente richiesto: Amministratore
L’accesso alla console è richiesto per le installazioni self-hosted
Sommario
Cloudflare può migliorare la tua istanza Discourse con prestazioni ottimizzate tramite CDN, livelli di sicurezza aggiuntivi come la protezione DDoS e il supporto HTTPS. Questa guida copre il processo di configurazione e le migliori pratiche per una configurazione ottimale.
Perché usare Cloudflare con Discourse
L’utilizzo di Cloudflare con la tua istanza Discourse offre diversi vantaggi chiave:
- Prestazioni: La CDN di Cloudflare può migliorare l’accesso globale agli asset comuni, migliorando l’esperienza utente a livello mondiale (source)
- Sicurezza: Livelli di protezione aggiuntivi inclusi:
- Protezione DDoS (source)
- Supporto HTTPS (source) (alternativa alla configurazione Let’s Encrypt di Discourse)
Per le installazioni self-hosted, sebbene Cloudflare offra questi vantaggi, aggiunge complessità alla tua configurazione.
Configurazione di Cloudflare
- Familiarizza con i Fondamentali di Cloudflare
- Segui le istruzioni di configurazione per configurare Cloudflare per il tuo dominio e ottenere i benefici di sicurezza, prestazioni e affidabilità
Migliori pratiche di configurazione
Impostazioni DNS
- Assicurati che i record DNS che puntano alla tua istanza Discourse siano con proxy
- Accedi alle impostazioni DNS su
dash.cloudflare.com/?to=/:account/:zone/dns
Configurazione SSL/TLS
- Imposta la modalità di crittografia su “Full (strict)” (Completo (rigoroso))
- Accedi alle impostazioni SSL/TLS su
dash.cloudflare.com/?to=/:account/:zone/ssl-tls
Una configurazione SSL/TLS errata può causare loop di reindirizzamento
Configurazione della Cache
- Imposta il livello di caching su “Standard”
- Accedi alle impostazioni di caching su
dash.cloudflare.com/?to=/:account/:zone/caching/configuration
Regole della Cache
Cloudflare ha deprecato le Page Rules a favore del loro moderno sistema di Rules. Crea quanto segue utilizzando Cache Rules su dash.cloudflare.com/?to=/:account/:zone/rules:
- Imposta il livello di Cache su “Bypass” per
community.example.com/session/* - Configura le impostazioni di normalizzazione degli URL per normalizzare gli URL in ingresso
Impostazioni di Rete
Le impostazioni di rete su dash.cloudflare.com/?to=/:account/:zone/network generalmente non influiscono sulla funzionalità di Discourse. Discourse non utilizza WebSocket, gRPC o gli header CF-IPCountry / True-Client-IP. Queste impostazioni possono essere lasciate sui loro valori predefiniti a meno che altro software sullo stesso dominio non richieda una configurazione specifica.
Impostazioni WAF (Web Application Firewall)
Se il tuo piano Cloudflare supporta le Regole Gestite (Managed Rules), crea quanto segue:
- Salta il WAF alla creazione/modifica dei post:
(starts_with(http.request.uri.path, "/posts") and http.request.method in {"POST" "PUT"})
- Per gli utenti del plugin Data Explorer, salta il WAF sulle query di amministrazione:
((http.request.uri.path contains "/admin/plugins/explorer/queries/" or http.request.uri.path contains "/admin/plugins/discourse-data-explorer/queries/") and http.request.method eq "PUT")
Per entrambe le regole:
- Scegli “Skip all remaining rules” (Salta tutte le regole rimanenti)
- Abilita “Log matching requests” (Registra le richieste corrispondenti)
Se sei su un piano Business o superiore, puoi utilizzare l’operatore regex
matchesper una corrispondenza più precisa. Gli operatoristarts_withecontainsutilizzati sopra funzionano su tutti i piani, inclusi Free e Pro.
Accedi alle impostazioni WAF su dash.cloudflare.com/?to=/:account/:zone/firewall/managed-rules
Ottimizzazione dei Contenuti
Configura quanto segue su dash.cloudflare.com/?to=/:account/:zone/speed/optimization:
- Abilita Brotli
- Disabilita Rocket Loader™
Discourse riceve frequentemente segnalazioni di sito non disponibile a causa dell’abilitazione di Rocket Loader™
Configurazione aggiuntiva per installazioni self-hosted
Per garantire il corretto inoltro dell’indirizzo IP, aggiungi quanto segue alla sezione template nel tuo containers/app.yml:
- "templates/cloudflare.template.yml"
Dopo aver aggiunto il template, devi ricostruire il tuo container con
./launcher rebuild appaffinché le modifiche abbiano effetto.
Correlato: Come si configura Cloudflare?
Risorse di supporto
Risoluzione dei problemi
Problemi di Content Security Policy (CSP)
Se riscontri errori CSP:
- Verifica che Rocket Loader sia disabilitato
- Controlla che gli script siano aggiunti correttamente all’impostazione del sito
content security policy script src
Funzionalità OneBox
Se OneBox viene bloccato:
- Controlla se la modalità Super Bot Fight Mode è abilitata
- Modifica l’impostazione “Definitely automated” (Certamente automatizzato) se è impostata su “Managed” (Gestito) o “Block” (Blocca)
- Considera la creazione di una regola WAF personalizzata per l’agente utente di OneBox



