Discourse 似乎不套CDN会更快

  1. Discourse的缓存机制:
    Discourse确实设计了一个强大的本地缓存系统。它会将大量动态生成的内容缓存在应用服务器上,这样可以快速响应用户请求,而不需要每次都重新生成内容。

  2. CDN的特性:
    传统的CDN主要设计用于缓存和分发静态资源,如图片、CSS、JavaScript文件等。它们通常不缓存动态生成的内容。

  3. 潜在的性能影响:
    当使用CDN时,对于Discourse的动态内容,请求可能需要经过以下路径:
    用户 → CDN → 原始服务器(Discourse) → CDN → 用户
    这可能会引入额外的网络跳转和延迟。

  4. 直接访问的优势:
    不使用CDN时,动态请求直接到达Discourse服务器:
    用户 → 原始服务器(Discourse) → 用户
    对于已缓存的动态内容,这可能会更快。

  5. 地理位置因素:
    如果用户离Discourse服务器较近,直接访问可能比通过CDN更快。

  6. CDN配置的复杂性:
    为Discourse正确配置CDN可能比较复杂,不当的配置可能导致性能下降。

理想的解决方案可能是:

  • 使用CDN来分发静态资源
  • 直接将动态请求路由到Discourse服务器
  • 优化Discourse服务器的地理位置

好像是有这种感觉一样的。

从载入速度来说,觉得 Discourse 的页面换成机制已经做得非常好了。

针对主题,他们的所有主题在发布以后都会进行重构,对于主题中如果引用的一些附件,如果配置了 CDN,附件中的内容就会全部被转换成为 CDN 的地址了。

这个转换不是在页面载入的时候做的,访问主题的时候就只是一个单纯的读取过程,这个读取也被换成了,所以速度非常快。

CDN 主要是在图片附件载入的时候,但现代的浏览器对于图片这些静态文件也在本地进行了缓存,感觉 Discourse 的内容显示非常快。

稍微慢点的就是第一次打开的时候稍微慢点,这个时候 CDN 的作用应该会比较明显。

确实,比较大一点的作用就是第一次访问快一点了

1 Like

反正我论坛是没套CDN的,不过经常有人报怨论坛卡卡的就是了XD

不知道当前你们访问我们这个社区的速度如何?

我们这个社区只套了一个 CF,基本上采用的都是默认配置,没有做出其他的更改。

如果速度还行的话,还说明 CF 的效果还不错。

至于图片附件也是用的是 S3,然后前面套用了 CloudFront,这个服务是 AWS 的,CloudFlare 就是在最前面而已。

国内无痕不挂梯速度

禁用换成后跑了下,也是这个尿性,看来用了 Cloud Flare 在哪里都差不多。

在国内,如果机器本身到国内的速度和CloudFlare都差不多的话,不套CDN会爽一点,(不过Cloudflare可以隐藏源IP)

或者可以使用一个腾讯云的 ECDN 全站服务,但这个服务如果域名是需要解析的话,那肯定是要备案的。

比如说下面的这个 WP 的网站:https://www.cwikius.cn/ 源服务器和当前的 Discourse 实例在同一个数据中心,但是 WP 网站套用的是腾讯云的 ECDN 服务。

也没几个 G 的流量,但腾讯的这个服务是收费的,也不知道效果怎么样,就先挂着玩玩。