Discourse mit Cloudflare verwenden
Diese Anleitung erklärt, wie Sie Discourse mit Cloudflare konfigurieren und verwenden, einschließlich Best Practices für die Sicherheit und Tipps zur Fehlerbehebung.
Erforderliches Benutzerniveau: Administrator
Für selbst gehostete Installationen ist Konsolenzugriff erforderlich
Zusammenfassung
Cloudflare kann Ihre Discourse-Instanz durch CDN zur Leistungssteigerung, zusätzliche Sicherheitsebenen wie DDoS-Schutz und HTTPS-Unterstützung verbessern. Diese Anleitung behandelt den Einrichtungsprozess und Best Practices für eine optimale Konfiguration.
Warum Cloudflare mit Discourse verwenden
Die Verwendung von Cloudflare mit Ihrer Discourse-Instanz bietet mehrere wichtige Vorteile:
- Leistung: Cloudflares CDN kann den weltweiten Zugriff auf gängige Assets verbessern und so das Benutzererlebnis global steigern (Quelle)
- Sicherheit: Zusätzliche Schutzebenen, einschließlich:
- DDoS-Schutz (Quelle)
- HTTPS-Unterstützung (Quelle) (Alternative zur Let’s Encrypt-Einrichtung von Discourse)
Bei selbst gehosteten Installationen erhöht Cloudflare zwar diese Vorteile, fügt Ihrer Einrichtung jedoch Komplexität hinzu.
Cloudflare einrichten
- Machen Sie sich mit den Cloudflare Fundamentals vertraut
- Folgen Sie den Einrichtungsanweisungen, um Cloudflare für Ihre Domain zu konfigurieren und die Sicherheits-, Leistungs- und Zuverlässigkeitsvorteile zu nutzen
Best Practices für die Konfiguration
DNS-Einstellungen
- Stellen Sie sicher, dass DNS-Einträge, die auf Ihre Discourse-Instanz verweisen, proxied sind
- Greifen Sie auf DNS-Einstellungen unter
dash.cloudflare.com/?to=/:account/:zone/dnszu
SSL/TLS-Konfiguration
- Stellen Sie den Verschlüsselungsmodus auf „Full (strict)“ ein
- Greifen Sie auf SSL/TLS-Einstellungen unter
dash.cloudflare.com/?to=/:account/:zone/ssl-tlszu
Eine falsche SSL/TLS-Konfiguration kann zu Weiterleitungsschleifen führen
Caching-Konfiguration
- Stellen Sie den Cache-Level auf „Standard“ ein
- Greifen Sie auf Caching-Einstellungen unter
dash.cloudflare.com/?to=/:account/:zone/caching/configurationzu
Cache-Regeln
Cloudflare hat Seitenregeln zugunsten seines modernen Rules-Systems eingestellt. Erstellen Sie die folgenden Regeln mit Cache Rules unter dash.cloudflare.com/?to=/:account/:zone/rules:
- Legen Sie den Cache Level für
community.example.com/session/*auf „Bypass“ fest - Konfigurieren Sie die Einstellungen zur URL-Normalisierung, um eingehende URLs zu normalisieren
Netzwerkeinstellungen
Die Netzwerkeinstellungen unter dash.cloudflare.com/?to=/:account/:zone/network wirken sich im Allgemeinen nicht auf die Discourse-Funktionalität aus. Discourse verwendet keine WebSockets, gRPC oder die Header CF-IPCountry / True-Client-IP. Diese Einstellungen können auf ihren Standardwerten belassen werden, es sei denn, andere Software auf derselben Domain erfordert eine spezifische Konfiguration.
WAF (Web Application Firewall)-Einstellungen
Wenn Ihr Cloudflare-Plan verwaltete Regeln unterstützt, erstellen Sie Folgendes:
- WAF bei Beitrags*erstellung/-bearbeitung überspringen:
(starts_with(http.request.uri.path, "/posts") and http.request.method in {"POST" "PUT"})
- Für Benutzer des Data Explorer-Plugins WAF bei Admin-Abfragen überspringen:
((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")
Für beide Regeln:
- Wählen Sie „Alle verbleibenden Regeln überspringen“
- Aktivieren Sie „Übereinstimmende Anfragen protokollieren“
Wenn Sie ein Business-Abonnement oder höher haben, können Sie den Regex-Operator
matchesfür eine präzisere Übereinstimmung verwenden. Die oben verwendeten Operatorenstarts_withundcontainsfunktionieren auf allen Plänen, einschließlich Free und Pro.
Greifen Sie auf WAF-Einstellungen unter dash.cloudflare.com/?to=/:account/:zone/firewall/managed-rules zu
Inhaltsoptimierung
Konfigurieren Sie Folgendes unter dash.cloudflare.com/?to=/:account/:zone/speed/optimization:
- Brotli aktivieren
- Rocket Loader™ deaktivieren
Aufgrund der Aktivierung von Rocket Loader™ werden häufig Meldungen über eine nicht erreichbare Website für Discourse gemeldet (siehe Suche nach Rocket Loader-Problemen auf Discourse Meta)
Zusätzliche Konfiguration für selbst gehostete Installationen
Um eine korrekte Weiterleitung der IP-Adresse zu gewährleisten, fügen Sie Ihrem containers/app.yml im Abschnitt „templates“ Folgendes hinzu:
- "templates/cloudflare.template.yml"
Nach dem Hinzufügen der Vorlage müssen Sie Ihren Container mit
./launcher rebuild appneu erstellen, damit die Änderungen wirksam werden.
Verwandt: Wie richtet man Cloudflare ein?
Support-Ressourcen
Fehlerbehebung
Content Security Policy (CSP)-Probleme
Wenn CSP-Fehler auftreten:
- Überprüfen Sie, ob Rocket Loader deaktiviert ist
- Überprüfen Sie, ob Skripte korrekt zur Site-Einstellung
content security policy script srchinzugefügt wurden
OneBox-Funktionalität
Wenn OneBox blockiert wird:
- Überprüfen Sie, ob der Super Bot Fight Mode aktiviert ist
- Passen Sie die Einstellung „Definitiv automatisiert“ an, wenn sie auf „Verwaltet“ oder „Blockieren“ eingestellt ist
- Erwägen Sie das Erstellen einer benutzerdefinierten WAF-Regel für den OneBox-User-Agent



