Activer un CDN pour votre Discourse

Vous souhaitez utiliser un CDN pour accélérer l’accès mondial aux actifs courants sur votre forum Discourse ? Vous voudrez peut-être opter pour une solution complète et consulter Set up file and image uploads to S3 (voir aussi Configure an S3 compatible object storage provider for uploads).

Si vous souhaitez un CDN sans la complexité supplémentaire d’S3 et d’avoir deux CDN, ce guide est pour vous. Le CDN réduira une partie de la charge sur votre serveur en permettant au CDN de servir ces actifs afin que le serveur n’ait pas à le faire. Il peut également accélérer les choses en livrant les fichiers depuis un emplacement plus proche de l’utilisateur final.

Inscrivez-vous auprès du CDN de votre choix – CDCK/discourse.org a utilisé et recommande fortement Fastly.

La configuration ressemblera à ceci :

Ce que vous recherchez se résume à trois paramètres principaux :

  1. L’adresse d’origine, qui est l’URL où votre forum est actuellement situé discourse.example.com. C’est à partir de là que le CDN tirera tout son contenu original lors de la première requête.

  2. Le CNAME, qui est le nom « convivial » pour votre CDN que vous configurerez dans votre DNS, par exemple discourse-cdn.example.com

  3. L’URL du CDN, qui est le nom « peu convivial » de l’endroit d’où proviendront les actifs CDN mis en cache via le réseau mondial de serveurs distribués du CDN. Il ressemblera à 637763234.cdn-provider.com

Vous devrez modifier votre DNS pour mapper le CNAME à l’URL du CDN, comme ceci :

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

(Une fois que vous avez modifié le DNS, laissez un peu de temps pour la propagation.)

La partie configuration de Discourse est assez simple. Décommentez la ligne CDN dans votre app.yml et mettez à jour avec le CNAME que vous venez de configurer dans votre DNS :

    ## L'adresse CDN http ou https pour cette instance Discourse (configurée pour tirer)
    DISCOURSE_CDN_URL: https://discourse-cdn.example.com

:warning: L’URL du CDN doit inclure un protocole (https:// ou http://). Les URL relatives au protocole (commençant par //) ne sont plus prises en charge et provoqueront l’arrêt de la construction du conteneur.

(Si vous ne voyez pas cette ligne dans votre app.yml, ajoutez-la sous les autres variables DISCOURSE_)

Comme pour toutes les autres modifications de votre app.yml, vous devez reconstruire le conteneur pour refléter les changements :

./launcher rebuild app

Une fois la reconstruction terminée, naviguez vers votre instance Discourse dans le navigateur. Affichez la source et recherchez « cdn ». Vous verrez que les actifs du site proviennent désormais de votre CDN :

<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>

Ce sujet couvre le scénario le plus courant d’accélération des actifs statiques. Consultez ce sujet pour l’accélération CDN du site complet (actifs dynamiques et statiques) (comme celui fourni par Cloudflare). Cloudflare fonctionne différemment d’un CDN traditionnel, ce n’est donc pas un bon sujet pour discuter de Cloudflare.

Autres CDN signalés comme fonctionnant incluent :

43 « J'aime »
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