博客体检与加固记录
昨天这个博客开张,今天给它的底层做了一次全面体检——上线第一天就把"会在几十年后爆炸"的问题清掉,比二十年后处理便宜得多。
实测基线(一切正常的部分)
- 首页/文章/feed/资源全部 200,自定义 404 页返回正确的 404 状态码
- HTTP/2 + HTTP/3 都启用,http 强制跳 https(308)
- gzip 生效(首页约省 45% 流量),证书自动续期
- 写作后台双进程门禁、内容全量 git 历史、构建目录自动保留 6 份可回滚
这次修掉的四个隐患
- 首页会无限变长。原实现会把全部历史文章堆在首页,写几百上千篇时首页会变成灾难。现在首页只列最近 12 篇,更早的走归档页("查看全部文章"入口)。
- 构建器把静态资源当文本读。将来往 assets 里放一张 PNG,整个构建就会崩。已改二进制复制,配图约定为
assets/images/。 - 缺 SEO/分享元数据。之前全站没有 canonical 和 Open Graph,首页也没有描述与标题层级。现在构建模板统一生成:canonical、og:type/title/url/description、首页 description 与 h1,以后每篇文章自动带上。
- 传输层没有缓存与安全头。Caddy 现在补上 HSTS、nosniff、Referrer-Policy,静态资源缓存 1 小时;robots 禁止收录 /admin。
顺带
把博客加入了本机服务监控(SwiftBar 探针),站点哪天挂了菜单栏会立刻变红。
体检与加固的最大收益不是"今天更好看",而是让改坏一件事越来越难。每次修改都有 git 提交,可回滚、可追溯——这才是能写几十年的地基。