用 CDN 加速 WordPress

写在前面 如果你觉得这篇文章对你有所帮助,并且想要使用又拍云,可以通过我这个 -> 链接 <- 注册,你我都能得到 不要白不要的 奖励。(注意,又拍云绑定的域名需要是备案过的) 如果你已经有 CDN ,可以跳过 又拍云 部分,直接看插件配置部分。 本篇文章对所有 CDN 都适用,这里以 又拍云 为例子作说明 又拍云更香? 上周在 V 站 发了个帖,安利了我写的一个 Alfred 插件,该插件可以方便地将图片上传到七牛云,顺便向大家安利了七牛。马上有 V 友跳出来说又拍云更香,免费流量比七牛云多 5 G,HTTPs CDN 流量也是算在免费套餐里边的。 趁着周末有点时间,去白嫖下又拍云。 又拍云联盟 没错。小标题 是 又拍云对开发者的白嫖活动的名字。我们加入这个联盟就能获得: 10 GB 免费存储 每个月 15 GB 免费 CDN 流量(HTTP[s] 都可以) 流程很简单。注册账号、在你的网站页脚添加又拍云的链接;填申请表。我是周六申请的,1个小时左右就收到了审核通过的通知。 Update(2022/12/02): 大家要留意一年的到期时间,快到期的时候去 联盟页面 申请续期。否则欠费就不好了,我就迟了几天,欠费 2 分钱 :) 审核通过后,会发放一年份的代金券给你,到期再次申请即可。 CDN 配置 系统设计 不想看我啰嗦的同学,可以跳过系统设计这部分。配置部分以 又拍云 为例子叙述 从上图的设计可以看出,我把文件分为三类: 动态接口/文件:例如 WordPress 中的 php 接口。这类请求是动态的,不适合放到 CDN 缓存中(一直回源,没有意义)。域名使用 foamzou.com ,该域名解析到我的服务器里,执行 WordPress 程序 适合短期缓存的文件:指的是短时间不会发生变化,但仍然有可能变化的文件。例如 WordPress 的系统库文件 域名使用:cdn.foamzou.com,该域名做个 cname 解析到 CDN 服务 当 CDN 未命中资源,则回源到 cdn.foamzou.com ( IP: 回源设置的 IP ) 适合长期缓存的文件:指的是几乎不会发生变化的资源文件。例如图片、第三方 css、js资源 域名配置同 2 给 CDN 配置一个对象存储桶 配置指定的路径从桶里取资源,没取到再回源到服务器 从服务器取到数据,存储到桶里 好处有 2 点 减少回源次数(毕竟对于同一个文件只会回源 1 次),节省服务器带宽 回源速度快(我在又拍云创建了个对象存储桶,CDN 和 存储 在同一个区域,速度当然比跨个公网访问我服务器快) 创建 CDN 服务 到 创建页面 : ...

2021-11-21 · 2 分钟 · 299 字

优化 WordPress emoji (s.w.org) 速度

怎么可以这么慢 今天给我的博客加了 CDN ,绝大部分文件都很快被加载。唯独有一片 emoji 文件列表响应在 400+ ms,怎么能忍。 官方的 emoji built-in 方案成了负担 貌似从 4.2 版本开始,WordPress 官方提供 emoji 的自支持方案。详细可查看 《WordPress 4.2 Emoji Performance》,这篇文章分析了官方方案的原理和弊端。 WordPress 的 js 脚本会把 html 中的 emoji code 替换成 WordPress 站点的 emoji 图片。目的应该是为了让那些尚不支持 emoji 的网站能够正常展示 emoji。 就我看来,这更多是自作多情了,毕竟现代浏览器还有多少是不支持 emoji 的?另外,这个方案是一刀切的,不管当前浏览器是否支持 emoji 都自动 fallback 到它的 build-in 方案。 这给浏览器带来了额外的网络请求,增大了网页的加载速率。在一些无法很好访问 s.w.org 站点的地区,更是直接被暴击。 不清楚 WordPress 后面的版本是否有做优化,anyway,让我们来干掉它吧。 解决方案 方案一:直接禁用(推荐) 本博客采用了这个方案,因为我不需要照顾 不支持 emoji 的浏览器用户。 下载这个插件(disable-emojis), 上传到 /wp-content/plugins/ 目录下,解压。到你的 plugin 管理后台,启用它即可。 世界瞬间清爽了,浏览器直接渲染 emoji ,再也不需要另外去请求网络获取图片文件。 方案二:替换为本地文件 如果你的站点希望照顾到 不支持 emoji 的浏览器。 ...

2021-11-20 · 1 分钟 · 76 字