基本思路是对 PHP 和 MySQL 的内容进行静态化处理,同时对部分资源加上 CDN 支持,让配置有限的小型服务器也能提供较好的访问体验。
静态化处理
静态化可以从以下几个维度入手:
- PHP 脚本静态化:例如启用 JIT 编译,或将动态脚本在服务端预先渲染为 HTML。
- MySQL 数据静态化:博文内容一般变化不大,可以考虑将其写入静态化的 PHP 文件,避免每次请求都查询数据库。
- 数据预压缩:gzip 实时压缩比较消耗 CPU,既然内容已经静态化,就可以对这些文件进行预压缩,让访问时的处理量降到最低。
CDN 加速
其他静态资源可以借助 CDN 来加速分发,价格便宜的同时也能减轻服务器压力。适合走 CDN 的资源包括 JS 脚本、PNG 图片、MP4 等。CSS 需要单独处理:由于 CSS 加载顺序会影响最终渲染结果,目前的方案是按照依赖的加载顺序将所有 CSS 合并为一个文件,再放到 CDN 通过 <link href> 引入。
缓存更新
基本思路是按需更新:在内容发生变化时(如文章修改、删除或手动触发)刷新缓存。如果访问量不高,也可以考虑定时刷新,实现简单直接。