使用Discourse与Cloudflare:最佳实践

自 2025 年夏季以来,我一直在 Discourse 论坛前使用 Cloudflare 的代理模式,一直没有遇到任何问题;如今,要使其正常工作,您真正需要针对 Discourse 进行的操作并不多。

最关键的项目之一是确保在 app.yml 文件中包含 cloudflare 模板。如果没有此设置,您的 Discourse 仪表板中只会看到 Cloudflare 服务器的 IP 地址,而不是实际访问者的 IP 地址。

“绕过对 /session/* 的缓存”规则似乎仍然是必需的(在新界面中将其作为缓存规则执行),而“在发帖/编辑时跳过 WAF”规则绝对是必需的(我将其设置为托管规则)。

由于我主要将 Discourse 用作 WordPress 网站的评论系统,我让 WordPress 对 /wp-json/wp-discourse/v1/discourse-comments?post_id=xxxx ajax 响应添加 60 秒的 TTL(当访问者请求特定 WP 帖子的评论线程时,网络服务器会发出这些响应);这有助于管理突发的访问者模式。我添加了一个 CF 缓存规则,该规则会尊重包含 /wp-json/wp-discourse/. 的 URI 的 TTL(没有企业帐户,我无法在 Cloudflare 上为这些 URL 设置足够短的 TTL,因此我通过 mu-plugin 在应用程序层设置 TTL,然后告诉 CF 通过 CF 缓存规则来遵守该 TTL。)

除此之外,以及帖子开头提到的基本设置,真的没有太多事情要做——Cloudflare 与 Discourse 的配合得非常好。

5 个赞