DiscuzX接入CDN

DiscuzX 接入 CDN 需要解决以下问题:

  • 附件接入 CDN
  • JS,CSS 接入 CDN
  • staticurl 接入 CDN
  • 界面基础图片目录 {IMGDIR} 接入 CDN
  • 头像接入 CDN
  • 插件静态文件接入 CDN

基本方案是新增一个静态资源域名作为 CDN 回源域名,比如 static.tecbbs.com,然后配置以上 项目 能够通过此域名访问到。然后配置 CDN 域名,比如 cdn.tecbbs.com。

附件接入CDN

通过以下配置,使 static.tecbbs.com 能够访问附件:

然后 DiscuzX 后台,全局 - 上传设置 - 基本设置 - 本地附件 URL 地址 中改为 CDN 链接 https://cdn.tecbbs.com/data/attachment。

如果使用了远程附件,则为远程附件做 CDN 加速,并且在远程附件配置中把 远程访问 URL 改为 CDN 链接。

JS CSS接入CDN

DiscuzX 的 JS 和 CSS 会缓存到 data/cache 目录下,因此首先为此目录添加 static.tecbbs.com 域名:

然后到后台,全局 - 性能优化 - 服务器优化,修改 JS 文件 URLCSS 文件 URL 为 CDN 链接。

staticurl接入CDN

static/ 目录添加 static.tecbbs.com 域名:

config/config_global.php 中,修改以下配置为 CDN 链接:

界面基础图片目录接入CDN

已经为 static/ 目录添加域名,然后界面基础图片目录可以直接修改为 CDN 链接。进入后台, 界面 - 风格管理,编辑当前使用的模板,找到 界面基础图片目录 {IMGDIR},改为 https://cdn.tecbbs.com/static/image/common。

头像,插件等接入CDN

这一部分思路都类似,都使基于 Nginx sub_filter 模块来做,和 WordPress 方案类似。DiscuzX 主域名的配置中配置 sub_filter

然后在 static.tecbbs.com 域名下配置:

然后头像需要在 UCenter 后台设置使用静态链接调用头像。

参考资料

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注