为论坛配置Cloudflare
本指南说明了如何与CloudFlare配置和使用话语,包括安全性最佳实践和故障排除提示。
必需的用户级别:管理员
自托管安装需要控制台访问
概述
CloudFlare 可以通过 CDN,诸如 DDOS 保护和 HTTPS 支持的其他安全层改善性能,从而增强您的话语实例。本指南涵盖了设置过程和最佳配置的最佳实践。
为何将Cloudflare与Discourse结合使用
将 Cloudflare 与您的 Discourse 实例结合使用,可带来诸多显著优势:
- 性能提升:Cloudflare 的 CDN 能够加速全球范围内对静态资源的访问,从而提升全球用户的访问体验(来源)。
- 安全保障:提供多重防护措施,包括:
- DDoS 防护(来源)
- HTTPS 支持(来源)(可作为 Discourse 的 Let’s Encrypt 配置 的替代方案)
对于自托管安装,尽管 Cloudflare 提供了这些优势,但也会增加配置的复杂性。
配置 Cloudflare
- 熟悉 Cloudflare 基础知识
- 按照 设置指南 为您的域名配置 Cloudflare,并享受 安全、性能和可靠性优势
配置最佳实践
DNS 设置
- 确保指向您的 Discourse 实例的 DNS 记录已启用代理
- 访问 DNS 设置页面:
dash.cloudflare.com/?to=/:account/:zone/dns
SSL/TLS 配置
- 将加密模式设置为 “完全(严格)”
- 访问 SSL/TLS 设置页面:
dash.cloudflare.com/?to=/:account/:zone/ssl-tls
错误的 SSL/TLS 配置可能导致重定向循环
缓存配置
- 将缓存级别设置为 “标准”
- 访问缓存设置页面:
dash.cloudflare.com/?to=/:account/:zone/caching/configuration
页面规则
在 dash.cloudflare.com/?to=/:account/:zone/rules
创建以下页面规则:
- 为
community.example.com/session/*
设置缓存级别为 “绕过” - 配置规则设置以规范化传入的 URL
网络设置
在 dash.cloudflare.com/?to=/:account/:zone/network
配置以下内容:
启用:
- IPv6 兼容性
- WebSockets
- IP 地理位置
- 网络错误日志记录
- Onion 路由
禁用:
- 伪 IPv4
- 响应缓冲
- True-Client-IP 标头
- gRPC
根据站点策略设置最大上传大小(建议为 100 MB)
WAF(Web 应用防火墙)设置
若您的 Cloudflare 套餐支持托管规则,请创建以下规则:
- 在文章创建/编辑时跳过 WAF 检查:
(http.request.uri.path eq "/posts(/[0-9]+)?" and http.request.method in {"POST" "PUT"})
- 对于使用 Data Explorer 插件的用户,请跳过管理员查询的 WAF 检查:
(http.request.uri.path contains "/admin/plugins/explorer/queries/" and http.request.method eq "PUT")
对于以下两条规则:
- 选择 “跳过所有剩余规则”
- 启用 “记录匹配请求”
访问 WAF 设置页面:dash.cloudflare.com/?to=/:account/:zone/firewall/managed-rules
内容优化
请在 dash.cloudflare.com/?to=/:account/:zone/speed/optimization
中配置以下内容:
- 启用 Brotli 压缩
- 禁用 Rocket Loader
- 禁用 自动压缩
由于启用了 Rocket Loader,Discourse 经常收到网站宕机的bug: 详情请参阅
自托管安装的额外配置
为确保正确的IP地址转发,请将以下内容添加到您的 containers/app.yml
文件中的 template 部分:
cloudflare.template.yml
相关链接:如何设置Cloudflare?
支持资源
故障排除
内容安全策略(CSP)问题
若遇到 CSP 错误:
- 确认 Rocket Loader 已禁用
- 检查脚本是否正确添加到
content security policy script src
站点设置中
OneBox功能
若 OneBox 被阻止:
- 检查是否启用了 Super Bot Fight Mode
- 若 “Definitely automated” 设置为 “Managed” 或 “Block” ,请调整此设置
- 考虑为 OneBox 用户代理创建自定义 WAF 规则
官方原帖链接: using-discourse-with-cloudflare-best-practices
最后更新时间: 2024-12-17T03:28:00Z
最后翻译时间: 2025-02-13T16:00:00Z
翻译使用的模型:DeepSeek-V3