实测手记 · 一个人做站的过程记录

建站、埋点、收录,都是自己动手量的

我把几个小站从零搭起来的过程记在这里:用什么方式建的、怎么埋数据、怎么看收录、备案与部署踩了哪些坑。只写自己真的做过的。

有据可查 不吹数字 持续更新

实践归档

把亲手搭起来、或亲手改过的几个站按时间归档,过程与坑都写下来。

小满手记(zangeng.com) · 个人静态站 · 2026

一个只记录日常的站

用同一套零依赖静态站方法搭起:一份 HTML 模板加一份数据 JSON,内容分短札、摘录、随笔三类,底色是历史与哲学。不注册、不互动、不交易,联系只留一个邮箱。

6
页面
3
内容类型
1
联系入口
静态站零构建个人站
年表拾遗(20101115.com) · 历史年表 · 数据驱动

把历史事件串成一条时间线

对接历史事件数据源,按朝代与年份排列事件,支持纪年换算与关键词检索。所有内容构建期拉取渲染,可追溯来源;空数据区块自动隐藏,不留空白。

5
页面
3
核心功能
1
数据源
历史年表数据驱动
实测手记(585.ink) · 技术实践记录 · 本站

把做站的过程记下来

本站本身即是那套方法的样板:记录零依赖静态站的搭法、埋点与收录的口径、个体工商户经营性备案下的合规边界,以及 GitHub SSH 推送部署。

4
页面
4
内容支柱
0
构建依赖
静态站埋点合规

最近写的

建站、埋点与收录的实测笔记。

凌晨把站点从宝塔面板搬到 Docker 的 40 分钟

11 月 15 日凌晨两点,我把跑了 11 个月的宝塔面板整机迁到 Docker Compose,起因是面板升级后 PHP 8.1 与 Nginx 的 fastcgi 超时配置被覆盖,日志里出现 502 报错 37 次。做法是先用 docker-compose 编排 nginx、php-fpm、mysql 三个容器,把站点目录挂载为卷,再把原 /www/wwwroot 下的静态资源 rsync 到新目录,MySQL 用 mysqldump 导出 214MB 后导入,最后用 cloudflared tunnel 替换原来的 frp 映射。过程中踩了两个坑:php-fpm 容器内的 user 权限与宿主 uid 不一致导致上传目录写入失败,改成 1000:1000 后解决;另外 mysql 的 8.0 认证插件让旧站点连接报错,加 --default-authentication-plugin=mysql_native_password 才通。迁移后首屏 TTFB 从 480ms 降到 260ms,面板内存占用少了 180MB。结论是容器化对单机小站收益主要在可复现,不是性能,配置写进 compose 文件比面板点选更省心。

凌晨把站点从VPS搬到静态托管:我踩了三个坑

11月14日凌晨两点,我把585.ink从一台跑了十一个月的VPS迁到静态托管:先用wget镜像整站,把WordPress导出的Markdown按年月重排目录,再改掉所有绝对链接;构建脚本里加了一步,把旧站301规则写成_redirects,收录没掉,但第一次部署后评论接口404,才发现PHP动态部分没法搬,只好把评论接回一台小机器。踩的坑有三个:镜像漏了uploads里的大写扩展名、CDN缓存把301也缓存了、构建时间从40秒涨到3分半。结论是纯静态部分值得搬,动态功能别硬塞,留一台小机器兜底最省心。

把 585.ink 的静态站从 VPS 迁到对象存储:一次凌晨的切流记录

11 月 13 日凌晨把 585.ink 主站从用了两年的 1 核 2G VPS 迁到对象存储加 CDN,起因是上周爬虫把内存顶到 92%,SSH 都卡。做法:先用 wget 镜像整站,校验文件数与总字节一致;再推对象存储,开静态托管;然后改 DNS 的 CNAME,TTL 提前降到 300 秒;最后在旧机留 48 小时回滚窗口。坑在缓存:默认按文件名缓存,改 CSS 后浏览器还吃旧版,改成按内容哈希命名并加版本前缀才干净。结论是月流量成本降了,首字节从 380ms 降到 90ms 左右;但表单提交仍要回源到一台小函数,这块没省掉。

凌晨两点把整站迁到新机器,顺手把证书续期也改了

凌晨两点开始迁站,旧机器上只剩 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%。结论:迁移前先在新机完整跑一遍证书与路由,比事后回滚省事得多。

常见问题

没找到答案?直接联系我。

这是什么站?
一个技术实践记录站,记录建站、埋点、收录与合规部署的实测过程;主体已迁个体工商户经营性备案,按合规口径投放广告。
内容是怎么来的?
都是我自己做过的项目与踩过的坑,只写有据可查的,没做过的不写。
怎么联系你?
到「联系」页用邮件入口给我写信(xlm8826@gmail.com)。反馈或其他联系需求,统一跳转到 antucao.com,不放其他入口。
文章会更新吗?
会持续更新。新踩的坑和新做的实践,整理好后会陆续放上来。

想一起聊聊?

关于建站、埋点、收录或合规部署,欢迎来信。

看到会回复,不保证秒回。