Configuração do Cloudflare e outras tarefas pós-migração

Olá, tenho trabalhado com outras pessoas para finalizar uma migração ad-hoc do nosso antigo vbulletin3 para o discourse. Agora é hora de começar a pensar em outros aspectos para a migração, um dos quais é o fato de termos uma conta cloudflare que serve o nosso fórum.

Gostaríamos de mantê-la, se possível, pois nosso fórum tem muitos “lurkers” (e cerca de 1000 usuários ativos).

O único tópico que encontrei aqui que tem alguma informação é de 2015, então estou perguntando se há alguma documentação “oficial” que eu possa ter perdido que especifique como configurar o cloudflare com o discourse corretamente.

Secundariamente, gostaria de saber se há um processo a seguir para:

  • fazer o discourse atualizar estatísticas após a migração
  • fazer o índice de busca do discourse “atualizar” após a migração

Agradeço desde já :slight_smile:

Serve como? É mais fácil usar o modo DNS. Se você quiser gastar um tempo extra para um benefício muito pequeno, existem alguns tópicos sobre isso. Na maioria das vezes, você desabilita as otimizações que quebram o Discourse. Se o que você quer é tirar um pouco da carga do seu servidor, então um CDN real como o bunny.net é o caminho a seguir.

Eu acho que as estatísticas e a pesquisa devem funcionar.

Pode ser um pouco míope implicar que o Cloudflare não é uma CDN “de verdade”? Porque é sim (e mais do que isso). Talvez você quisesse dizer CDN “tradicional”?

Configurar uma CDN tradicional custará muito mais tempo e trará aproximadamente a mesma quantidade de benefício.

1 curtida

Justo!

E o Cloudflare pode ser mais barato, já que a versão gratuita provavelmente é suficiente para muitas pessoas. Parece que sempre há um tópico ativo onde alguém quebrou seu site com o Cloudflare, e a maneira mais fácil de fazê-lo funcionar parece ser desativar toda a otimização para que ele só possa aumentar a latência.

Se você criasse um tópico que descrevesse como configurar o Cloudflare de forma que ele fornecesse o mesmo benefício que uma CDN tradicional, seria muito útil mesmo. Talvez seja tão simples quanto desativar o rocket loader, mas parece que exatamente como configurá-lo pode ser um alvo em movimento (já que eles mudam e melhoram seu produto).

Desculpe, não quero iniciar uma discussão sobre qual CDN é melhor, etc.

Ainda não tenho mais informações, mas, pelo que entendi, o fórum atualmente usa um plano pago (então não é a opção gratuita, acho), mas mesmo assim, isso é irrelevante.

Pergunta simples :slight_smile: → O que preciso fazer para configurar o Cloudflare para que ele não incomode o Discourse?

Depois disso, ficarei feliz em entender se é algo realmente necessário ou não (ou seja, benefícios, etc) :slight_smile:
Além disso, se alguém puder me dar um link ou algo sobre as outras duas perguntas menores, seria ótimo :heart:

Vou usar a próxima semana para fazer alguns testes em um ambiente de staging, então nada está definido!

Se você estiver hospedado por discourse.org, ou por qualquer outra pessoa, para esse assunto. Você deve verificar com eles antes de fazer qualquer coisa com o cloudflare. Normalmente, você apenas cria um CNAME de DNS que aponta para os servidores deles. Discourse.org já possui CDNs em vigor, então você não precisa se preocupar.

Obrigado @pfaffman, é auto-hospedado. Como eu disse, ele é usado para o fórum vbulletin atual que simplesmente ficará offline e será substituído pelo discourse, que responderá a partir do mesmo nome de domínio.

1 curtida

Depende de qual função (se houver) você quer que o Cloudflare desempenhe.

Se você quer apenas usar o Cloudflare como DNS, certifique-se de que a nuvem laranja esteja desativada para o registro ‘a’ do fórum.

Se você quer realmente enviar o tráfego do Discourse pela rede do Cloudflare e está ciente da latência adicional que isso adiciona, no mínimo, crie uma regra de página para ‘Desativar Desempenho’ para todo o domínio do fórum. Nenhuma das otimizações de desempenho do Cloudflare é recomendada e sabe-se que elas quebram sites.

Observe que existe um modelo do Cloudflare que precisa ser adicionado ao seu app.yml, ele passará o CF-Connecting-IP como o IP do cliente, para que você não veja todos se originando de um nó em sua rede.

Se você não estiver usando armazenamento baseado em objetos e estiver executando com a nuvem laranja ativada, você pode criar uma regra de cache para o seu caminho de ativos.

2 curtidas

Obrigado @Stephen.

O Cloudflare foi (bem, ainda é por enquanto) usado para não sobrecarregar o servidor web real com solicitações.

Eu estava me perguntando, principalmente, com a natureza de atualizações em tempo real do Discourse (presumo que seja websocket? não verifiquei) como isso poderia ser um problema com algo como o cache do Cloudflare e tudo mais. É por isso que eu estava me perguntando se havia alguma documentação ou se alguém tinha alguma dica :slight_smile:

Não sei nada e é por isso que me sinto tão perdido de vez em quando, mas parece que você está procurando a natureza do PHP, mas obtém a natureza do aplicativo JavaScript, onde tudo, exceto a obtenção de dados reais, está acontecendo no dispositivo do usuário.

Essa é a razão (e minhas habilidades limitadas) pela qual minhas tentativas de colocar o Varnish na frente do Discourse falharam tão miseravelmente.

Claro, você pode servir ativos de uma CDN, mas é só isso.

1 curtida

Certo, o Cloudflare não consegue fazer nada para reduzir a carga do servidor de aplicação. Como um aplicativo javascript de página única, o Discourse realmente não se beneficia.

Pior ainda, colocar o Discourse atrás do Cloudflare adiciona saltos de rede para cada solicitação entre o aplicativo no navegador e o servidor, então há um leve aumento nos tempos de resposta.

Você está mantendo os uploads no servidor ou usando S3/uma alternativa semelhante ao S3?

1 curtida

Desculpe pela demora nas respostas.

Não sei o suficiente sobre o design do Discourse, mas pensando na presença do redis, que já gerencia parte do cache de requisições comuns. Isso explica o “cloudflare não ser realmente necessário”.

Então, estou entendendo corretamente que há pouco ou nenhum benefício em ter o Cloudflare na frente de uma instalação do Discourse e, pelo contrário, isso tornaria a resposta mais lenta (saltos de rede)?

A única razão para o Cloudflare na instalação do vbulletin3 era que a quantidade de requisições sobrecarregaria o servidor e (apenas supondo aqui) poderia ser devido ao trabalho ruim no design do código do vbulletin3, para ser honesto, porque a VM que o hospeda tem 4 vcores, 8 GB de RAM apenas para a aplicação em si e outra VM com especificações iguais para o banco de dados.

Não há como nenhum aplicativo web moderno precisar de tanto poder hoje em dia.

Falando nisso, existe alguma referência que eu possa consultar para avaliar quanta infraestrutura eu precisaria para uma instalação do Discourse que, em média, tem ~1K usuários ativos e ~5-6K observadores?

Isso não é completamente verdade. Especialmente na primeira carga, o Cloudflare pode acelerar o carregamento de ativos estáticos de Javascript. E isso é exatamente uma das coisas que o Google analisa para decidir se o seu site é rápido o suficiente para evitar uma penalidade do motor de busca. Os benefícios são maiores quando você tem um fórum de marketing que atrai usuários de motores de busca, e as desvantagens são maiores quando você tem um fórum com um grupo ativo de usuários recorrentes.

Não, porque realmente depende se esses usuários são muito ativos ou se eles visitam uma vez por dia. Eu já vi um grupo de < 50 pessoas trocando fotos grandes e usando o Discourse como uma caixa de chat durante todo o dia derrubar hardware realmente potente, enquanto eu também já vi um fórum com 10.000 pessoas que vinham postar algo uma vez por semana e mais de 30 milhões (!) de observadores rodarem em um VPS medíocre.

3 curtidas

Obrigado pela visão e informação @RGJ, acho que vou apenas monitorar e veremos como as coisas vão. Espero que não exija um aumento massivo nos requisitos em comparação com o software anterior :crossed_fingers: