把博客做成静态站:一次刻意的减法

#架构#静态站

博客这类站点有个特点:读多写少、内容变化慢、读者只要 HTML。把它跑成动态应用,等于为了每月两篇文章,长期养一套数据库、运行时和升级链。

静态站到底轻在哪

动态博客每次请求都要:路由 → 查库 → 渲染模板 → 返回 HTML。静态站把前三步提前到构建时,线上只剩最后一步——nginx 读文件。

维度动态博客静态站
运行时PHP/Node/Java 常驻无
数据库必需无
攻击面后台、插件、SQL静态文件
备份数据库 + 附件一个目录
单页响应数十毫秒亚毫秒

代价也很明确:没有在线编辑器。写完 Markdown 要跑一次构建。对我来说这反而是优点——文章进 git,改动有历史,误删能找回。

构建命令只有一条

zola build
# 产物在 public/,nginx 直接指向它

配合一个 nginx location 就够了:

location / {
    try_files $uri $uri/ $uri.html =404;
}

什么时候不该用静态站

  • 需要评论、登录、会员体系:要么接第三方,要么老老实实上动态方案
  • 日更多篇、多人协作编辑:构建流程会成为负担
  • 内容强依赖数据库查询(站内搜索、个性化推荐)

除此之外,个人博客用静态站几乎没有理由输。复杂度是要付利息的,能砍就砍。