Habilitar uma CDN para o seu Discourse

Portanto, você gostaria de usar uma CDN para acelerar o acesso mundial a ativos comuns no seu fórum Discourse? Você pode querer ir com tudo e Set up file and image uploads to S3 (veja também Configure an S3 compatible object storage provider for uploads).

Se você quer uma CDN sem a complexidade adicional do S3 e ter duas CDNs, este é o guia para você. A CDN reduzirá parte da carga no seu servidor, permitindo que a CDN sirva esses ativos para que o servidor não precise fazê-lo. Ela também pode acelerar as coisas ao entregar os arquivos de um local mais próximo do usuário final.

Cadastre-se na CDN de sua escolha – CDCK/discourse.org usou e recomenda fortemente a Fastly.

A configuração será algo como isto:

O que você está procurando são três configurações principais:

  1. O endereço de origem (origin address), que é o URL onde seu fórum está atualmente localizado discourse.example.com. É daqui que a CDN buscará todo o seu conteúdo original na primeira solicitação.

  2. O CNAME, que é o nome “amigável” para sua CDN que você configurará no seu DNS, por exemplo, discourse-cdn.example.com

  3. O URL da CDN (CDN URL), que é o nome “não amigável” de onde os ativos da CDN em cache virão através da rede mundial de servidores distribuídos da CDN. Será algo como 637763234.cdn-provider.com

Você precisará editar seu DNS para mapear o CNAME para o URL da CDN, assim:

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

(Depois de editar o DNS, dê um tempinho para propagar.)

A parte real da configuração no Discourse é bem simples. Descomente a linha da CDN no seu app.yml e atualize-a com o CNAME que você acabou de configurar no seu DNS:

## O endereço http ou https da CDN para esta instância do Discourse (configurado para puxar)
DISCOURSE_CDN_URL: https://discourse-cdn.example.com

:warning: O URL da CDN deve incluir um protocolo (https:// ou http://). URLs relativos ao protocolo (começando com //) não são mais suportados e farão com que a compilação do contêiner seja abortada.

(Se você não vir esta linha no seu app.yml, adicione-a abaixo das outras variáveis DISCOURSE_)

Como em qualquer outra alteração no seu app.yml, você precisa reconstruir o contêiner para refletir as alterações:

./launcher rebuild app

Depois de reconstruir, navegue até sua instância do Discourse no navegador. Visualize a fonte e procure por “cdn”. Você verá que os ativos dos sites agora estão vindo da sua 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 tópico cobre o cenário mais comum de aceleração de ativos estáticos. Veja este tópico para aceleração CDN de todo o site (ativos dinâmicos e estáticos) (como a fornecida pelo Cloudflare). O Cloudflare funciona de forma diferente de uma CDN tradicional, então este não é um bom tópico para discutir o Cloudflare.

Outras CDNs reportadas como funcionais incluem:

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