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