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?
Discourse load balancer encounters problems, hoping to help
How to solve super slow loading time for site?
S3 image bandwidth costs are getting annoying
Varnish config for discourse
How to add AWS Cloudfront as a Discourse CDN
I can't login to admin after backup due to Cloudflare
Forum not working after configuring CDN (ERR_CERT_COMMON_NAME_INVALID)
Change image folder to symlinked folder
Minimum server size based on backup?
How to add AWS Cloudfront as a Discourse CDN
Blank login and signup page
Understanding Uploads, Images, and Attachments
My discourse speed is very slow
MKJ's Opinionated Discourse Deployment Configuration
Uploads Subdomain For Cloudflare
How to install discourse without ssl?
How might we better structure #howto?
Conserving unicorns by serving images with nginx?
Discourse & Cloudflare
Mobile app URL issues
Forum does not work
How to make Discourse faster for image-heavy communities?
Rebuilds taking a long time with a large number of uploads (chown performance)
Latest commits in v3.3.0.beta3-dev seems to break Discourse
Using Discourse with Cloudflare: Best Practices
Optimizing Site For Speed - How To Improve?
Should I load third-party libraries from vendor or cdn?