把博客做成静态站:一次刻意的减法
博客这类站点有个特点:读多写少、内容变化慢、读者只要 HTML。把它跑成动态应用,等于为了每月两篇文章,长期养一套数据库、运行时和升级链。
静态站到底轻在哪
动态博客每次请求都要:路由 → 查库 → 渲染模板 → 返回 HTML。静态站把前三步提前到构建时,线上只剩最后一步——nginx 读文件。
| 维度 | 动态博客 | 静态站 |
|---|---|---|
| 运行时 | PHP/Node/Java 常驻 | 无 |
| 数据库 | 必需 | 无 |
| 攻击面 | 后台、插件、SQL | 静态文件 |
| 备份 | 数据库 + 附件 | 一个目录 |
| 单页响应 | 数十毫秒 | 亚毫秒 |
代价也很明确:没有在线编辑器。写完 Markdown 要跑一次构建。对我来说这反而是优点——文章进 git,改动有历史,误删能找回。
构建命令只有一条
zola build
# 产物在 public/,nginx 直接指向它
配合一个 nginx location 就够了:
location / {
try_files $uri $uri/ $uri.html =404;
}什么时候不该用静态站
- 需要评论、登录、会员体系:要么接第三方,要么老老实实上动态方案
- 日更多篇、多人协作编辑:构建流程会成为负担
- 内容强依赖数据库查询(站内搜索、个性化推荐)
除此之外,个人博客用静态站几乎没有理由输。复杂度是要付利息的,能砍就砍。