这篇文章记录 www.sphererapids.com 从空站点到静态博客的建设过程。
项目概览
结构上,Astro 负责页面和内容集合,Markdown frontmatter 保存文章元数据,C++ 工具承担内容校验和搜索索引生成,OpenResty 只负责静态文件访问。
用途是建立一个低维护、高性能的个人兴趣记录网站。应用场景包括项目札记、阅读片段、实验记录、RSS 订阅、搜索索引和静态内容发布。
结构
运行层使用 1Panel 管理的 OpenResty。页面由 Astro 在构建期生成,发布后仅提供静态文件访问。
实现原理是把动态工作尽量放在构建期。content-check 校验文章 frontmatter,search-index 从内容 manifest 生成搜索数据,Astro 输出 HTML、RSS 和 sitemap。发布后,服务器只返回静态文件,减少运行时依赖。
缓存
HTML 保持短缓存,带 hash 的 CSS、JavaScript、图片和字体使用长缓存。
location ~* \.(css|js|webp|woff2)$ {
add_header Cache-Control "public, max-age=31536000, immutable";
}