// 2026-10-16 · 812 字 · 2 分钟
这个博客是怎么搭起来的
为什么是静态站
先看这台机器还剩什么:
磁盘: 50G,已用 15G,剩 33G ✓ 充裕
CPU: 2 核 Xeon 8255C ✓ 够用
内存: available 885 MB
swap: 已用 909 MB / 1987 MB ✗ 这才是真约束
swap 已经用了将近一半 —— 也就是说这台机器正在拿磁盘当内存用。这种情况下再塞一个常驻进程是很危险的选择:
| 架构 | 代表 | 常驻内存 |
|---|---|---|
| 纯静态 | Hugo | 0 |
| Node 动态 | Ghost | 150~250 MB |
| PHP 动态 | WordPress | 250~400 MB |
静态站的产物就是一堆 HTML 文件,由已经在跑的 Caddy 直接读磁盘,不新增任何进程。构建时 Hugo 临时占约 50 MB,构建完就退出 —— 实测空站构建 0.091 秒。
为什么是 Hugo
在静态生成器里,Hugo 的定位很清楚:单 Go 二进制,无运行时依赖。
对比另外两个热门选择:
- Hexo —— 中文社区最大、主题最多,但要 Node + 几百个依赖包,构建峰值内存 300~600 MB。在这台机器上构建期间会把其他服务一起拖进 swap。
- Astro —— 最现代、产物最小,但依赖链更复杂,构建峰值 400~800 MB。
Hugo 的代价是模板语法(Go template)学习曲线陡一些。但如果只是写博客,日常根本不需要碰模板。
一个容易忽略的坑:外部依赖
很多主题默认引用 Google Fonts 或者公共 CDN。在境内访问这些资源会卡住几秒甚至超时 —— 页面看起来「加载慢」,其实和你的服务器毫无关系。
选主题时我专门检查了这一点:
grep -rniE 'fonts\.googleapis|fonts\.gstatic|cdn\.jsdelivr|unpkg\.com|cdnjs\.cloudflare' \
themes/PaperMod/layouts themes/PaperMod/assets themes/PaperMod/static
PaperMod 的结果是 零命中 —— 所有资源本地化,这是选它的重要原因之一。
备案要求决定了部署位置
工信部备案的核查维度里有「接入信息」一项:备案域名当前解析的 IP 归属,必须与备案的接入服务商一致。
这意味着不能用 Vercel、GitHub Pages、Netlify 这些「一键托管」—— 域名解析指向境外会让备案失效,甚至被判「空壳网站」注销。
所以这个站点跑在自己的腾讯云 CVM 上,用 blog.vultx.top 子域,同一个主体、同一个接入商,完全合规。
写作流程
内容就是 Markdown 文件,放在 content/posts/ 下:
---
title: "文章标题"
date: 2026-10-16T16:45:00+08:00
draft: false
tags: ["标签"]
---
正文从这里开始。
写完跑一次 hugo 生成,Caddy 立刻就能访问 —— 不需要重启任何服务。
这篇文章本身就是一次渲染测试:中文排版、代码块、表格、列表、引用。