最近把博客从动态程序迁移到了纯静态方案,整个过程下来体验非常舒服,写篇文章记录一下。最终方案是 Hugo + Nginx,部署在一台轻量云服务器上。
为什么选静态博客
之前用的是 WordPress,功能确实强大,但对个人博客来说有点重了:
- PHP + MySQL 占用资源不少,1 核 1G 的小机器跑起来明显吃力
- 插件多了之后安全问题频发,光更新就够烦的
- 写作体验不如直接写 Markdown 来得纯粹
静态生成器的好处显而易见:纯文件,纯 Markdown,git 就是版本管理,部署就是复制文件。
Hugo 的安装与初始化
Hugo 是 Go 写的,单二进制文件,安装特别简单:
| |
创建新站点:
| |
新建一篇文章:
| |
写完后 hugo server -D 本地预览,没问题就 hugo 生成静态文件到 public/ 目录。
Nginx 配置
关键配置如下,启用了 HTTP/2 和 gzip:
| |
证书我用的是 Let’s Encrypt,配合 acme.sh 自动续期,基本不用管。
一些优化技巧
- 缓存策略:静态资源加长缓存时间,HTML 短缓存
- HTTP/2:一定要开,多路复用对小站点资源加载提升明显
- CDN:如果读者分布广,套一层 Cloudflare 免费版就够了
写在最后
迁移之后,整站体积从原来的几百兆(含数据库)缩到了不到 10MB,响应速度从 300ms 降到了 40ms。写作也回归了纯粹 —— 打开编辑器写 Markdown,git push,完事。
工具应该是赋能而不是负担。共勉。