Habilitar una CDN para tu Discourse

¿Así que desea utilizar una CDN para acelerar el acceso mundial a los recursos comunes en su foro de Discourse? Es posible que desee ir a por todas y consultar Set up file and image uploads to S3 (consulte también Configure an S3 compatible object storage provider for uploads).

Si desea una CDN sin la complejidad adicional de S3 y tener dos CDNs, esta es la guía para usted. La CDN reducirá parte de la carga de su servidor al permitir que la CDN sirva esos activos para que el servidor no tenga que hacerlo. También puede acelerar las cosas al entregar los archivos desde una ubicación más cercana al usuario final.

Regístrese con la CDN de su elección: CDCK/discourse.org ha utilizado y recomienda encarecidamente Fastly.

La configuración se verá algo así:

Lo que está buscando son tres configuraciones principales:

  1. La dirección de origen, que es la URL donde se encuentra actualmente su foro discourse.example.com. Aquí es de donde la CDN extraerá todo su contenido original en la primera solicitud.

  2. El CNAME, que es el nombre “amigable” para su CDN que configurará en su DNS, por ejemplo, discourse-cdn.example.com

  3. La URL de la CDN, que es el nombre “poco amigable” de dónde vendrán los activos de la CDN almacenados en caché a través de la red mundial de servidores distribuidos de la CDN. Se verá como 637763234.cdn-provider.com

Deberá editar su DNS para mapear el CNAME a la URL de la CDN, de la siguiente manera:

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

(Una vez que haya editado el DNS, dele un poco de tiempo para que se propague).

La parte real de la configuración de Discourse es bastante sencilla. Descomente la línea de la CDN en su app.yml y actualícela con el CNAME que acaba de configurar en su DNS:

## La dirección http o https de la CDN para esta instancia de Discourse (configurada para extraer)
DISCOURSE_CDN_URL: https://discourse-cdn.example.com

:warning: La URL de la CDN debe incluir un protocolo (https:// o http://). Las URL relativas al protocolo (que comienzan con //) ya no son compatibles y harán que la compilación del contenedor se interrumpa.

(Si no ve esta línea en su app.yml, agréguela debajo de las otras variables DISCOURSE_)

Como con cualquier otro cambio en su app.yml, debe reconstruir el contenedor para reflejar los cambios:

./launcher rebuild app

Una vez que haya reconstruido, navegue a su instancia de Discourse en el navegador. Vea el código fuente y busque “cdn”. Verá que los activos de los sitios web ahora provienen de su 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>

Este tema cubre el escenario más común de aceleración de activos estáticos. Consulte este tema para la aceleración de CDN de sitio completo (tanto de activos dinámicos como estáticos) (como la proporcionada por Cloudflare). Cloudflare funciona de manera diferente a una CDN tradicional, por lo que este no es un buen tema para discutir Cloudflare.

Otras CDN que se ha informado que funcionan incluyen:

43 Me gusta
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?