Featured image of post 从 Halo 到 Hugo:一次资源优化与折腾之旅

从 Halo 到 Hugo:一次资源优化与折腾之旅

在经历了VPS系统莫名崩溃以及内存常年站用90%以上后,我果断切换我的博客系统到Hugo静态博客系统了。

缘起

之前我的博客一直跑在 Halo 系统上,用的主题是 M酷&Jiewen,一个基于 Halo 2.0 的博客主题,功能挺全,界面也不错。不过,Halo 是 Java 开发的动态博客系统,跑起来有点“重”,尤其在我的服务器环境下,资源捉襟见肘。于是,我决定切换到 Hugo 这个静态博客生成器,追求更轻量、更自由的体验。

经过

先说我的服务器情况。我在境外的 VPS 服务商 DMIT 买了一台虚拟主机,配置是 1 核 2G。跑 Halo 这种 Java 语言的博客系统真的很吃力,因为它依赖 JVM 和数据库,内存和 CPU 占用都不低。而这台 VPS 我还得用来干点别的事(比如跑个小工具、搭个服务),资源完全不够分。静态博客就成了我的新选择——生成 HTML 文件,扔到服务器上,简单又省心。

这次选了 Hugo。Hugo 用 Go 语言开发,单文件运行,速度快得飞起,不需要复杂环境。我之前没怎么接触 Hugo,入手第一步是找主题。我挑了 Stack 这个主题(地址:https://github.com/CaiJimmy/hugo-theme-stack),设计相当不错,尤其是它的卡片、堆栈式风格,特别戳中我的审美。而且,我这次用的是 Hugo Module 方式管理主题,不像以前那样直接把主题文件塞到项目里。这种方式更方便管理和升级维护,只需要在 config.toml 里声明模块,跑 hugo mod get 就行,干净又高效。

迁移内容稍微费了点劲。Halo 的文章存在数据库里,而 Hugo 要用 Markdown 文件。我写了个小脚本,把 Halo 数据导出来转成 Markdown,调了半天格式和 bug,总算搞定。Hugo 的配置刚开始确实有点门槛,没啥可视化工具,全靠改配置文件(比如 config.toml),但这正合我喜欢折腾的胃口。研究清楚后,发现运行和部署特别方便,hugo 一条命令生成静态文件,完事。

部署方面,我直接用 DMIT 的这台 VPS。Github Pages 速度慢且不稳定,Pass 掉;国内云存储加 CDN(比如阿里云 OSS)也试了试,但子文件夹没法用 index.html 做默认页,体验不好,也放弃了。最后还是把文件扔到 VPS 上,搭了个 Nginx,开了 HTTP/2 和 TLS 1.3,速度还行,资源占用几乎可以忽略,比跑 Halo 轻松太多。

结语

生命在于折腾,这次从 Halo 切换到 Hugo,既是为了解决资源不够的问题,也是对自己折腾能力的一次小挑战。Hugo 刚开始入门可能有点难,尤其是配置全靠手动,但这正是我喜欢的地方。加上 Stack 这种卡片、堆栈式的主题设计,视觉上真的很舒服。Hugo Module 的管理方式也让我对维护和升级更有信心。

如果你也在用 Halo(比如装了 M酷&Jiewen),觉得服务器资源吃紧,不妨试试 Hugo。轻量、自由,还能折腾出属于自己的风格,何乐而不为呢?

comments powered by Disqus
宇宙备案号:SOL-EARTH-20070001
使用 Hugo 构建
主题 StackJimmy 设计