Hugo 博客搭建:从零到国内可访问的全过程

大家好,我是Seb。这篇博客记录了我用 Hugo + PaperMod 搭建技术博客的完整过程,包括选型思路、架构设计、配置细节和踩坑记录。希望对正在折腾博客的朋友有帮助。 为什么选 Hugo 市面上静态博客生成器不少,我逐一试过,说说我个人的感受。 Jekyll 是老牌选手,GitHub Pages 原生支持,生态成熟。但它基于 Ruby,本地环境配置比较折腾,我每次换电脑都要重新装 Ruby 和 bundle,而且编译速度慢,几百篇文章要等十几秒,迭代体验不好。 Hexo 基于 Node.js,社区主题丰富,中文资料也多。但它的编译速度随着文章增多下降明显,而且依赖 node_modules,一旦依赖版本冲突就头疼。另外它的配置文件结构个人感觉偏重,不太直观。 Astro 比较新,设计理念很好,支持岛屿架构,可以做很复杂的页面。但对于一个纯博客来说有点杀鸡用牛刀了。Astro 的构建依赖 npm,项目体积也大,而且学习曲线相对陡,为了写个博客去学一套新框架,感觉有点划不来。 Hugo 吸引我的地方有几个:编译极快,我目前几十篇文章,构建时间在 100ms 左右,基本是瞬间完成;单二进制文件,没有运行环境依赖,macOS 上 brew install hugo 就搞定;模板语法虽然有点怪,但配置本身很简单,一个 config.yaml 就能跑起来。 至于主题,我选的是 PaperMod。它是 Paper 主题的维护升级版,GitHub 上 10k+ star,社区活跃,基本周更。功能上该有的都有:暗黑模式、全文搜索、代码复制按钮、目录 TOC、RSS 订阅,而且 UI 干净,不花哨,对阅读体验友好。 需求拆解与方案设计 动手之前,我先把博客的需求列了一下,避免后面跑偏: 零成本托管 —— 博客没有营收,不想每个月掏服务器钱 国内能正常访问 —— 我的读者大部分在国内,如果打不开等于白写 写作流程越简单越好 —— 最好是本地写 Markdown,推送即更新 域名统一品牌 —— 博客用子域名挂在我主站品牌下 这四条的最终方案分别是: 托管 → GitHub Pages,完全免费,香港和日本节点访问速度尚可 国内访问 → 香港轻量服务器 Nginx 反向代理,几十块钱一个月,只转发静态文件,负载极低 自动化 → GitHub Actions,推 main 分支自动构建部署 域名 → blog.aibestapp.top,跟主站同一域名体系 这里说一个小细节。GitHub Pages 默认绑定的是 username.github.io 这种域名,你可以绑自定义域名,但 GitHub 的 IP 在国内部分地区会被墙或者丢包严重。即使绑了自定义域名,国内访问还是不稳定。所以我干脆让它走 GitHub Pages 的原生域名,然后在前面加一层香港反代,这样国内访问走反代,国外直接访问 GitHub Pages,两边都不受影响。 ...

2026-05-23 · 4 min · 658 words · Seb