Ative um CDN para o seu Discourse

So files will not synchronise with my system, cloudfront just cache them. Am i true?

3 curtidas

Yes. That is correct. The CDN gets from your site just the assets that are requested of it.

Discourse will push to S3 static assets (like css and javascript) as well I uploads.

4 curtidas

Is it possible to use cloudflare rules to cache static assets like css and javascript?

2 curtidas

Yes, we use it that way and it works well. Just be very careful to disable any javascript optimizations. You can see our setup here:

4 curtidas

Thanks for the response.

I have already added the second and third rule but I didn’t get the first rule. What’s the need for 301 redirect??

2 curtidas

You don’t need it; it’s in the description.

3 curtidas

Thanks for the response. What about the static assets like css and javascripts? Any rule possible for css and javascript??

2 curtidas

I didn’t test that. I’m not sure that would work. At the very least you’d have to clear your Cloudflare cache after every rebuild.

2 curtidas

It’s okay with me to clear the cache after every rebuild. What else would possibly go wrong if I make a rule to cache everything in https://myforum.com/assets/ ? Will this anyway affect user login? If you give a nod, I will test it for a week and report. I still have one unused rule.

2 curtidas

Just to clarify, is it correct we do not use this field (as well as CDN URL) if we are using cloudflare CDN?

I have setup cloudflare.template in app.yml as per docs.

Is any further config needed if using cloudflare?

1 curtida

Acabei de usar o StackPath com sucesso como CDN. Funciona como esperado!

2 curtidas

Ainda é o caso hoje em dia?

De 2019:

Parece que temos que ter cuidado extra e que perdemos alguns dos benefícios do Cloudflare.

De 2020:

De 2021:

Então, o Cloudflare é confiável e eficiente com o Discourse hoje? Desativar o recurso “Rocket Loader” minimiza os benefícios?

Eu estava pensando em mudar do Stackpath para o Bunny CDN, mas o proprietário do domínio do meu fórum e ex-administrador tem uma conta Cloudflare Enterprise (ele é o proprietário do tinyURL, aliás) na qual ele poderia adicionar o domínio gratuitamente (Looking for a decrease in the forum fees in the future - #6 by Gilby - Forum Feedback - Unicyclist.com).

Então, eu me pergunto se é correto, indolor e eficaz usar o Cloudflare em vez do Bunny CDN.

2 curtidas

Se você tem muitas imagens, o que você gastará em SSDs de conexão direta será muito mais caro do que os custos equivalentes do S3.

O S3 precisa de uma CDN na frente dele para ser econômico, pois você é cobrado por entrada e saída, mas ainda é muito mais barato do que simplesmente adicionar mais SSDs de alta velocidade. O CloudFlare pode ficar na frente do S3, mas o cache de ativos é realmente o único recurso que você pode usar de forma confiável. Colocar o CloudFlare entre o cliente e o servidor de aplicativos também aumentará o número de saltos e elevará a latência do aplicativo. Não é uma solução mágica.

2 curtidas

Não temos muitas imagens. O objetivo do CDN seria fazer com que os ativos carregassem rapidamente para todos os usuários, já que nossa comunidade é internacional (principalmente EUA e Europa).

Usamos S3, mas apenas para armazenar backups.

1 curtida

Pergunta rápida. É obrigatório um “rebake” após mudarmos nossa CDN? Ou é apenas se o URL da CDN for diferente? Ou não é necessário?


editar: ou é simplesmente possível substituir os URLs antigos nas postagens cozidas pelos novos com um script rails?

Por exemplo, se eu tiver uma postagem contendo:

<img class="ytp-thumbnail-image"
src="https://f5i4i8k5.stackpathcdn.com/uploads/default/original/3X/f/3/f3bc5ab19cc0394f33fd008e90ca06e081886a0b.jpeg"
title="Riding a unicycle part 76: Sullivan Canyon - Los Angeles"
width="480"
height="360"
loading="lazy"
style="aspect-ratio: 480 / 360;"
>

Eu poderia fazer uma busca e substituição de strings de f5i4i8k5.stackpathcdn.com para newcdn.unicyclist.com sem quebrar nada? Parece seguro, mas quero ter certeza do que estou fazendo.

Não me importo de fazer o “rebake” de todas as minhas postagens, mas o problema que enfrentei da primeira vez é que tenho milhares de vídeos do YouTube incorporados, e meu IP foi colocado na lista negra pelo YouTube durante o “rebake” devido a muitas solicitações ao YouTube.

Portanto, se houver uma alternativa segura além de fazer o “rebake” de todas as postagens e enfrentar o mesmo problema irritante, prefiro optar pela alternativa…

3 curtidas

Existe uma tarefa rake que fará uma substituição. Acho que executá-la é seguro e uma boa ideia. Substituir uma string em todos os posts é o que você procura, eu acho.

2 curtidas

Olá Jay,

Não tenho certeza sobre o uso da tarefa rake.
Os URLs da CDN parecem estar presentes nos campos cooked em vez dos campos raw (a menos que a mensagem tenha sido enviada por e-mail).
Pelo que entendi, post:remap procura a string apenas no campo raw.

Se substituir os URLs da CDN nos campos raw e cooked for seguro, acho que deveria usar um script rails personalizado?

2 curtidas

Você está certo. Há outra . . . coisa . . . que substituirá uma string em todos os campos do banco de dados. É essa que você está procurando. Desculpe, mas não consigo encontrá-la agora. Existem alguns tópicos sobre a migração de um s3, mas não parece haver um howto.

2 curtidas

Obrigado por esta dica!

Acho que é isto?

DbHelper.remap('from', 'to')

Encontrado em Rebaking old posts won't pull new S3 CDN URL after S3 bucket rename - #10 by Brad_Wood

E usado aqui:

Se for uma alternativa segura a um rebake ao alterar o nosso serviço de CDN, um howto seria realmente bom.

3 curtidas

Ah, que bom. Obrigado por me avisar. Pensei que seria o suficiente para você encontrar. Que bom que conseguiu.

3 curtidas