一个只记录日常的站
用同一套零依赖静态站方法搭起:一份 HTML 模板加一份数据 JSON,内容分短札、摘录、随笔三类,底色是历史与哲学。不注册、不互动、不交易,联系只留一个邮箱。
把亲手搭起来、或亲手改过的几个站按时间归档,过程与坑都写下来。
用同一套零依赖静态站方法搭起:一份 HTML 模板加一份数据 JSON,内容分短札、摘录、随笔三类,底色是历史与哲学。不注册、不互动、不交易,联系只留一个邮箱。
对接历史事件数据源,按朝代与年份排列事件,支持纪年换算与关键词检索。所有内容构建期拉取渲染,可追溯来源;空数据区块自动隐藏,不留空白。
本站本身即是那套方法的样板:记录零依赖静态站的搭法、埋点与收录的口径、个体工商户经营性备案下的合规边界,以及 GitHub SSH 推送部署。
建站、埋点与收录的实测笔记。
博客原先挂在托管平台上,为了能自己控制缓存和证书,我把它迁到一台自建 VPS。做法是:用 Caddy 反代静态目录并自动签发 Let's Encrypt 证书,用 rsync 从本地推送构建产物,systemd 单元保证 Caddy 开机自启,再用 cron 每天做一次增量备份。遇到的坑主要有三个:一是 DNS 切换后旧解析残留,导致证书签发校验失败,靠提前降低 TTL 并等待 TTL 过期解决;二是 rsync 默认权限导致静态文件不可读,加 --chmod 修正;三是防火墙只放行 80/443,忘了放行 SSH,差点把自己锁在外面。结论是自建部署可控性明显提升,但要把证书、备份、防火墙三件事当成日常运维项,不能一次配置完就不管。
为了省掉每月维护VPS的精力,我把纯静态博客迁到对象存储加CDN。做法是先用rsync把构建产物同步到本地,再用对象存储的命令行工具上传,并给index.html和404.html设置正确的Content-Type与缓存头;自定义域名通过CDN回源到存储桶,并开启强制HTTPS。踩到的坑是默认缓存时间过长导致更新不生效,改成HTML短缓存、静态资源长缓存并配合文件名哈希后解决。结论是纯静态站点托管到对象存储更省心,但缓存策略和回源路径必须在上线前验证。
把跑在旧空间上的静态站迁到自建Nginx:先用rsync同步站点文件到新机器,证书用acme.sh签发并配置自动续期,Nginx开启gzip与长缓存,用location规则处理带hash的静态资源和404回退。配置完用curl -I和浏览器核对响应头,发现CSS被缓存导致样式错乱,改为对index.html禁用缓存后恢复正常。上线后保留旧站三天并加301跳转,确认无异常再下线。结论是自建部署可控性更好,但证书续期和缓存策略必须提前配好。
起因是VPS每月固定开销和单点故障:一次内核升级后Nginx起不来,站点停了四十分钟。做法是把纯静态的Hugo产物迁到边缘函数平台,构建放在CI里,push后自动生成并上传,域名走CNAME,证书由平台托管;动态部分只保留一个评论接口,用KV存数据,加简单限流。踩的坑有两个:一是边缘节点对缓存键处理不同,带查询参数的旧链接命中了错误版本,最后在函数里显式拼上路径与版本号;二是本地时区与构建机不一致,日期归档错位一天,改为构建时强制UTC。结论:静态站迁边缘后首字节明显变快,运维面缩小到只剩CI配置和评论接口,适合内容型站点,但涉及会话和写库的功能仍建议留在传统主机。
原站跑在一台2核2G的VPS上,Nginx直出静态文件,随着图片和归档增多,单机带宽和TLS握手成了瓶颈。做法是把构建产物上传到对象存储,开启静态网站托管,前面挂CDN并配置强制HTTPS与缓存规则:HTML设短缓存、带hash的静态资源设长缓存加immutable,回源走私有读加回源鉴权。踩的坑有三个:一是SPA路由的404回退要单独配置错误文档,否则刷新子路径全白屏;二是CDN默认不回传gzip,需在回源头里补Accept-Encoding,否则传输体积反而变大;三是证书签发后忘记清缓存,旧证书残留导致部分节点报错。结论:迁移后首屏耗时明显下降,源站压力几乎归零,但缓存规则和回退配置必须一次配到位,否则排查成本远高于省下的机器钱。
没找到答案?直接联系我。