Utilizando o Discourse com Cloudflare
Este guia explica como configurar e usar o Discourse com o Cloudflare, incluindo as melhores práticas de segurança e dicas de solução de problemas.
Nível de usuário necessário: Administrador
O acesso ao console é necessário para instalações auto-hospedadas
Sumário
O Cloudflare pode aprimorar sua instância do Discourse com melhor desempenho por meio de CDN, camadas de segurança adicionais como proteção contra DDoS e suporte a HTTPS. Este guia aborda o processo de configuração e as melhores práticas para uma configuração ideal.
Por que usar o Cloudflare com o Discourse
Usar o Cloudflare com sua instância do Discourse oferece vários benefícios chave:
- Desempenho: A CDN do Cloudflare pode melhorar o acesso mundial a ativos comuns, aprimorando a experiência do usuário globalmente (fonte)
- Segurança: Camadas adicionais de proteção, incluindo:
- Proteção contra DDoS (fonte)
- Suporte a HTTPS (fonte) (alternativa à configuração do Let’s Encrypt do Discourse)
Para instalações auto-hospedadas, embora o Cloudflare ofereça esses benefícios, ele adiciona complexidade à sua configuração.
Configurando o Cloudflare
- Familiarize-se com os Fundamentos do Cloudflare
- Siga as instruções de configuração para configurar o Cloudflare para o seu domínio e obter os benefícios de segurança, desempenho e confiabilidade
Melhores práticas de configuração
Configurações de DNS
- Garanta que os registros DNS que apontam para sua instância do Discourse estejam com proxy habilitado
- Acesse as configurações de DNS em
dash.cloudflare.com/?to=/:account/:zone/dns
Configuração de SSL/TLS
- Defina o modo de criptografia como “Full (strict)” (Completo (estrito))
- Acesse as configurações de SSL/TLS em
dash.cloudflare.com/?to=/:account/:zone/ssl-tls
A configuração incorreta de SSL/TLS pode causar loops de redirecionamento
Configuração de Cache
- Defina o nível de cache como “Standard” (Padrão)
- Acesse as configurações de cache em
dash.cloudflare.com/?to=/:account/:zone/caching/configuration
Regras de Cache
O Cloudflare descontinuou as Regras de Página em favor de seu moderno sistema de Regras. Crie o seguinte usando Regras de Cache em dash.cloudflare.com/?to=/:account/:zone/rules:
- Defina o Nível de Cache como “Bypass” (Ignorar) para
community.example.com/session/* - Configure as configurações de normalização de URL para normalizar as URLs de entrada
Configurações de Rede
As configurações de rede em dash.cloudflare.com/?to=/:account/:zone/network geralmente não afetam a funcionalidade do Discourse. O Discourse não usa WebSockets, gRPC ou os cabeçalhos CF-IPCountry / True-Client-IP. Essas configurações podem ser deixadas em seus padrões, a menos que outro software no mesmo domínio exija configuração específica.
Configurações do WAF (Web Application Firewall)
Se o seu plano Cloudflare suportar Regras Gerenciadas, crie o seguinte:
- Ignorar WAF na criação/edição de posts:
(starts_with(http.request.uri.path, "/posts") and http.request.method in {"POST" "PUT"})
- Para usuários do plugin Data Explorer, ignorar WAF em consultas de administrador:
((http.request.uri.path contains "/admin/plugins/explorer/queries/" or http.request.uri.path contains "/admin/plugins/discourse-data-explorer/queries/") and http.request.method eq "PUT")
Para ambas as regras:
- Escolha “Skip all remaining rules” (Ignorar todas as regras restantes)
- Habilite “Log matching requests” (Registrar requisições correspondentes)
Se você estiver em um plano Business ou superior, você pode usar o operador de regex
matchespara uma correspondência mais precisa. Os operadoresstarts_withecontainsusados acima funcionam em todos os planos, incluindo Free e Pro.
Acesse as configurações do WAF em dash.cloudflare.com/?to=/:account/:zone/firewall/managed-rules
Otimização de Conteúdo
Configure o seguinte em dash.cloudflare.com/?to=/:account/:zone/speed/optimization:
- Habilite Brotli
- Desabilite Rocket Loader™
O Discourse frequentemente recebe relatórios de site fora do ar devido ao Rocket Loader™ estar habilitado
Configuração adicional para instalações auto-hospedadas
Para garantir o encaminhamento de endereço IP correto, adicione o seguinte à seção de templates em seu containers/app.yml:
- "templates/cloudflare.template.yml"
Após adicionar o template, você deve reconstruir seu container com
./launcher rebuild apppara que as alterações entrem em vigor.
Relacionado: Como você configura o Cloudflare?
Recursos de suporte
- Suporte da Comunidade Cloudflare
- Pesquisar no Discourse Meta por problemas relacionados ao Cloudflare
Solução de problemas
Problemas de Content Security Policy (CSP)
Se você encontrar erros de CSP:
- Verifique se o Rocket Loader está desativado
- Verifique se os scripts são adicionados corretamente à configuração do site
content security policy script src
Funcionalidade OneBox
Se o OneBox estiver sendo bloqueado:
- Verifique se o Super Bot Fight Mode está ativado
- Ajuste a configuração “Definitely automated” (Definitivamente automatizado) se estiver definida como “Managed” (Gerenciado) ou “Block” (Bloquear)
- Considere criar uma regra WAF personalizada para o agente do usuário do OneBox



