一个只记录日常的站
用同一套零依赖静态站方法搭起:一份 HTML 模板加一份数据 JSON,内容分短札、摘录、随笔三类,底色是历史与哲学。不注册、不互动、不交易,联系只留一个邮箱。
把亲手搭起来、或亲手改过的几个站按时间归档,过程与坑都写下来。
用同一套零依赖静态站方法搭起:一份 HTML 模板加一份数据 JSON,内容分短札、摘录、随笔三类,底色是历史与哲学。不注册、不互动、不交易,联系只留一个邮箱。
对接历史事件数据源,按朝代与年份排列事件,支持纪年换算与关键词检索。所有内容构建期拉取渲染,可追溯来源;空数据区块自动隐藏,不留空白。
本站本身即是那套方法的样板:记录零依赖静态站的搭法、埋点与收录的口径、个体工商户经营性备案下的合规边界,以及 GitHub SSH 推送部署。
建站、埋点与收录的实测笔记。
凌晨两点开始迁站,旧机器上只剩 585.ink 这一个站点还在跑,续费账单不值得。做法是先在旧机导出 SQLite 与静态目录,打包传到新机,nginx 配置逐段对照改,PHP 版本从 7.4 提到 8.2 后,一个本地时间函数报错,翻了日志才发现是时区参数被移除。证书没用面板自带的一键续期,改成 acme.sh 加 cron,把续期时间设为每天 03:17,只在实际到期前 30 天才走签发流程,日志留在 /var/log/acme。迁移后首屏从 1.4 秒降到 0.9 秒,最明显的是数据库不再跨盘读写。结论是迁站别贪多,一次只动一个变量,改完 PHP 版本先跑一遍全站页面再改 nginx。
2026 年 11 月 11 日零点,我把跑了 14 个月的静态站从旧 VPS 挪到新机器,全程用 rsync 加 systemd 重写服务单元,没动一行业务代码。迁移前先在新机跑了一遍 nginx -t 和证书续期 dry-run,结果卡在 TLS 1.2 的 OCSP 装订上:旧机靠 cron 手动 stapling,新机没配 resolver,浏览器首屏多等了一个往返。第二个坑是 301 规则,旧机把 /posts 全量跳转到带斜杠路径,新机复制配置后忘了同步 try_files,首页索引直接 404。第三个坑在 rsync:加了 --delete 却没排除 .well-known,acme 验证目录被清空,凌晨一点半重新签发证书。剩下四个坑分别是日志轮转权限、防火墙放行 80 端口顺序、systemd 的 RestartSec 设得太短导致重启风暴、以及旧机没关停造成双写。凌晨三点全部收尾,TTFB 从 480ms 降到 210ms,次日抓取日志里 200 状态码占比回到 99.2%。结论:迁移前先在新机完整跑一遍证书与路由,比事后回滚省事得多。
11 月 10 日晚上把 585.ink 从用了两年的香港 1C1G 小机迁到新的 2C2G 节点,装的是 1Panel 面板加 OpenResty。做法是先在新机用面板建站、导入原 Nginx 配置和证书,再改 DNS 的 A 记录并压低 TTL 到 60 秒,等解析生效后停旧机。踩到的坑有两个:一是面板默认伪静态把 WordPress 的 wp-json 路由拦了,REST API 报 404,手动补了一条 location 规则才好;二是旧机 MySQL 5.7 导出用 mysqldump 带 --single-transaction,导入新机 MariaDB 后时间字段有偏移,核对时区改成 +08:00 才对上。整站迁移耗时约 40 分钟,首页 TTFB 从 620ms 降到 310ms,后面打算把静态资源也交给面板的 CDN 缓存。
11 月 9 日这台 2 核 4G 的轻量云主机上,站点仍跑在 docker run 手动起的容器里,重启后要人工 docker start,日志靠 docker logs -f 挂着看。这次把 Hugo 生成的静态目录交给 Caddy,用 systemd 单元直管 caddy 进程,容器只保留 PostgreSQL。做法:写 /etc/systemd/system/caddy.service,ExecStart 指向 /usr/local/bin/caddy run --config /etc/caddy/Caddyfile,Restart=on-failure,RestartSec=5,加 ProtectSystem=strict 与 ReadWritePaths=/var/log/caddy;Caddyfile 里 root * /srv/585,file_server,encode gzip,日志走 /var/log/caddy/access.log。坑有两个:一是 caddy 用户没有 /srv/585 读权限,403 排查了二十分钟,chown -R caddy:caddy 解决;二是 systemd 下 PATH 不含 /usr/local/bin,ExecStart 必须写绝对路径。结论:重启后 12 秒站点恢复,内存占用从 380MB 降到 96MB,日志按天切分不再撑爆磁盘。
11 月 8 日凌晨两点,我把跑在旧 VPS 上的 585.ink 整体迁到一台新机器:先把静态产物用 rsync 同步到新机 /srv/site,再切 Nginx 配置,Let's Encrypt 证书用 certbot 重新签发而不是直接拷旧文件,最后改 DNS 的 A 记录并把 TTL 提前一天压到 300 秒。中途遇到的问题:旧机 Nginx 里有一条 rewrite 规则没跟着搬,迁完首页 200、内页全 404;rsync 漏了 --exclude 导致 .git 目录被同步过去占了 1.2GB。教训是迁移前列一份完整清单,DNS 先降 TTL,切完观察 24 小时再关旧机。
没找到答案?直接联系我。