Am I right that cdn can only cache the files in my site and can’t cache hotlinked files from another site?
I store catalogue files (mps and pictures) on another server and hotlink them on my Discourse site. Am I right that such files won’t be cached by cdn? Is there a way to cache the hotlinked files too?
Unless you tell discourse not to, it will pull those remote images to its own image store. The below assumes you turned that off.
You should put that site behind CDN and then share the CDN url to discourse.
If you put a CDN in front of your image site but share the origin url to discourse, You can use a built in feature to replace the origin url with the CDN url .
Am I right, that if I activate the CDN feature in Discourse and switch off saving the origin to Discourse, the cdn service will cache these external files and Discourse will replace all the links to files hotlinked from another site?
I doubt that can caches external files hotlinked from other sites. Can anybody approve it?
FYI - I’ve posted a new thread on how to setup full site CDN acceleration (and SSL termination) using AWS Cloudfront here (link below). There be dragons here - so tread lightly.
Nos dias atuais de 2023, as quatro regras abaixo ainda precisam ser seguidas rigorosamente? Por exemplo, se eu fosse usar o Akamai, que é projetado para acelerar o nome de domínio principal com sua CDN. Alguém tem uma configuração simplificada das regras abaixo, como se o message bus e o long polling ainda precisassem solicitar ao origin? Onde essas configurações devem ir? O long polling base url parece ter sido removido do painel de administração?
Portanto, “long polling base url” precisa ser definido através do console do Rails. Como foi removido do painel de administração. Devo ter perdido o motivo postado em algum lugar antes, por que ele foi removido, se a configuração ainda é necessária para que o site funcione bem no modo CDN de site completo.
Da mesma forma, DISCOURSE_ENABLE_CORS: true precisa ser definido em app.yml.
Você deve defini-lo com uma variável de ambiente (DISCOURSE_LONG_POLLING_BASE_URL) no seu app.yml. Ele está oculto porque pouquíssimas pessoas precisam defini-lo e assume-se que, se você estiver fazendo isso, sabe o que está fazendo.
Obrigado, @pfaffman! Eu deveria ter imaginado que todas essas variáveis em maiúsculas deveriam ir para o app.yml.
Então, quais casos de uso do message-bus terão efeito? Por exemplo, uma resposta a uma postagem causando notificação, etc.? Eu faria um teste de casos de uso para garantir se o message-bus no meu site está funcionando como esperado sem o DISCOURSE_LONG_POLLING_BASE_URL definido.
long_polling_base_url é uma configuração oculta do site, mas pode ser definida a partir do console do Rails se você não estiver usando uma variável de ambiente em seu app.yml:
Esta lista definitivamente oferece mais insights sobre o Discourse.
Configurei a CDN com meu site, ela atingiu os caches de borda, no entanto, ainda não experimentei problemas com o message-bus em seus cabeçalhos de resposta, mas ainda não me sinto seguro. Nem mesmo configurei as configurações CORS.
Não, eu uso o Akamai CDN, que suporta cache de conteúdo dinâmico.
Pelo primeiro post neste tópico, parece que devo configurar o DISCOURSE_CDN_URL como um CDN que não é de site completo, embora o URL seja o mesmo que o URL do site. Eu só não tenho certeza se configurá-lo pode quebrar meu site e causar outros resultados irreversíveis, e no final eu terei que reinstalar o software do zero. Neste post Full Site CDN Using AWS CloudFront, o autor não configurou e deixou o DISCOURSE_CDN_URL inalterado, e não requer um URL separado para servir message-bus/long-polling. Eu uso esta solução e meu site está funcionando bem até agora. A única desvantagem da solução é que existem muitos URLs relativos (sem URL base, pois o valor de DISCOURSE_CDN_URL está vazio) presentes no código-fonte da página, o que faz com que não pareça um site em nível de produção.
Em seguimento às minhas perguntas, encontrei uma postagem semelhante à que estou perguntando nesta postagem CloudFront not caching static files - #4 by Falco
Agradeço a resposta do @Falco, nesta configuração de CDN de site completo, posso definir DISCOURSE_CDN_URL como o mesmo que DISCOURSE_HOSTNAME? Como presumo que CDN de site completo significa que a CDN acelera a URL do hostname, o que torna DISCOURSE_CDN_URL o mesmo que DISCOURSE_HOSTNAME. Mas não há documentação decente sobre isso no meta.
Você não precisa de um modelo para isso, basta configurar o bunny para buscar em seu site do Discourse e definir o DISCOURSE_CDN_URL para o endpoint de CDN fornecido pelo bunny em app.yml.
Estou tentando como "aceleração de CDN" com o IP do meu vps com Bunny DNS. Funciona, mas todos os usuários têm o mesmo IP.
Acabei de encontrar a configuração, ela é chamada de "X-Real-Ip"