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