Ein CDN für dein Discourse aktivieren

Sie möchten also ein CDN verwenden, um den weltweiten Zugriff auf gängige Assets in Ihrem Discourse-Forum zu beschleunigen? Möglicherweise möchten Sie alles auf einmal erledigen und Set up file and image uploads to S3 (siehe auch Configure an S3 compatible object storage provider for uploads).

Wenn Sie ein CDN ohne die zusätzliche Komplexität von S3 und die Nutzung von zwei CDNs wünschen, ist dies der richtige Leitfaden für Sie. Das CDN reduziert die Last auf Ihrem Server, indem es dem CDN ermöglicht, diese Assets bereitzustellen, sodass der Server dies nicht tun muss. Es kann auch die Geschwindigkeit erhöhen, indem die Dateien von einem Standort geliefert werden, der näher am Endbenutzer liegt.

Registrieren Sie sich bei dem CDN Ihrer Wahl – CDCK/discourse.org hat Fastly genutzt und empfiehlt es nachdrücklich.

Die Konfiguration wird in etwa so aussehen:

Sie suchen nach drei Haupteinstellungen:

  1. Die Origin-Adresse (Ursprungsadresse), d. h. die URL, unter der sich Ihr Forum derzeit befindet, z. B. discourse.example.com. Von hier aus zieht das CDN bei der ersten Anforderung alle ursprünglichen Inhalte.

  2. Der CNAME, d. h. der „freundliche“ Name für Ihr CDN, den Sie in Ihren DNS-Einstellungen festlegen, z. B. discourse-cdn.example.com

  3. Die CDN-URL, d. h. der „unfreundliche“ Name für den Ort, von dem die zwischengespeicherten CDN-Assets über das weltweite Netzwerk verteilter Server des CDN stammen. Er wird wie 637763234.cdn-provider.com aussehen.

Sie müssen Ihre DNS-Einträge bearbeiten, um den CNAME der CDN-URL zuzuordnen, wie folgt:

discourse-cdn.example.com IN CNAME 637763234.cdn-provider.com

(Nachdem Sie die DNS-Einträge bearbeitet haben, geben Sie ihm etwas Zeit, um sich zu verbreiten.)

Der eigentliche Discourse-Teil der Einrichtung ist recht einfach. Kommentieren Sie die CDN-Zeile in Ihrer app.yml aus und aktualisieren Sie sie mit dem CNAME, den Sie gerade in Ihren DNS-Einstellungen festgelegt haben:

    ## Die http oder https CDN-Adresse für diese Discourse-Instanz (für das Abrufen konfiguriert)
    DISCOURSE_CDN_URL: https://discourse-cdn.example.com

:warning: Die CDN-URL muss ein Protokoll enthalten (https:// oder http://). Protokoll-relative URLs (beginnend mit //) werden nicht mehr unterstützt und führen zum Abbruch des Container-Builds.

(Wenn Sie diese Zeile in Ihrer app.yml nicht sehen, fügen Sie sie unter den anderen DISCOURSE_-Variablen hinzu.)

Wie bei allen anderen Änderungen an Ihrer app.yml müssen Sie den Container neu erstellen, um die Änderungen zu übernehmen:

./launcher rebuild app

Sobald Sie neu erstellt haben, rufen Sie Ihre Discourse-Instanz im Browser auf. Zeigen Sie den Quellcode an und suchen Sie nach „cdn“. Sie werden sehen, dass Website-Assets nun von Ihrem CDN stammen:

<script src="https://discourse-cdn.codinghorror.com/assets/preload_store-4ea79c2f435becca86ac97a9c038f9c7.js"></script>
<script src="https://discourse-cdn.codinghorror.com/assets/locales/en-7084a68855205a9128245d2d0ce94ed9.js"></script>

Dieses Thema behandelt das häufigere Szenario der Beschleunigung statischer Assets. Siehe dieses Thema für die Beschleunigung der gesamten Website (sowohl dynamische als auch statische Assets) über ein CDN (wie es von Cloudflare bereitgestellt wird). Cloudflare funktioniert anders als ein herkömmliches CDN, daher ist dies kein geeignetes Thema für die Diskussion von Cloudflare.

Andere CDNs, die Berichten zufolge funktionieren, umfassen:

43 „Gefällt mir“
Full site CDN acceleration for Discourse
Azure Backup/CDN Integration
Downloading remote images disabled due to disk space
How do I change the legacy CDN URLs of images in posts?
Add a new site (android) 'was not found'
CloudFront not caching static files
How to enable AWS CDN to accelerate the discourse service
Cloudfront cdn with discourse?
How to add AWS Cloudfront as a Discourse CDN
How to solve super slow loading time for site?
Varnish config for discourse
S3 image bandwidth costs are getting annoying
Discourse load balancer encounters problems, hoping to help
Is Hetzner Object Storage and Bunny CDN Supported?
I can't login to admin after backup due to Cloudflare
How to install discourse without ssl?
How to add AWS Cloudfront as a Discourse CDN
Conserving unicorns by serving images with nginx?
Is Hetzner Object Storage and Bunny CDN Supported?
Optimizing Site For Speed - How To Improve?
Latest commits in v3.3.0.beta3-dev seems to break Discourse
How to make Discourse faster for image-heavy communities?
Using Discourse with Cloudflare: Best Practices
Minimum server size based on backup?
Understanding Uploads, Images, and Attachments
Uploads Subdomain For Cloudflare
Discourse & Cloudflare
Mobile app URL issues
Forum does not work
Should I load third-party libraries from vendor or cdn?
Forum not working after configuring CDN (ERR_CERT_COMMON_NAME_INVALID)
Blank login and signup page
My discourse speed is very slow
MKJ's Opinionated Discourse Deployment Configuration
How might we better structure #howto?
Change image folder to symlinked folder