← 返回首页

被挂上热榜的那晚:单日 87 万 PV 复盘

凌晨两点的告警

7 月 12 号凌晨 1:47,手机连震三下把我吵醒。是 Uptime Kuma 的告警:源站响应时间超过 3 秒。

迷迷糊糊打开 Grafana,看到出站带宽的曲线几乎是垂直往上的——平时深夜也就 2-3 Mbps,那会儿已经冲到 340 Mbps 还在涨。

第一反应是被打了。查了下 access log,来源很干净,全是真实 UA,refer 集中在一个聚合站——去年写的那篇《给爸妈装 NAS 的踩坑记录》被人转上了热榜。

那晚的数据

事后从 CDN 后台拉了报表,大概是这样:

最后一条是重点。98% 以上的请求被 CDN 边缘节点扛掉了,我那台 2C4G 的小服务器全程 CPU 没超过 40%。

做对了的事

  1. 全站静态化。文章就是 HTML 和 Markdown 文件,没有数据库查询,没有动态渲染,缓存命中率天然高。
  2. 图片全部走独立 CDN 域名,并且提前做了 WebP 化(见我之前那篇图床文章),单图平均只有 80KB。
  3. Cache-Control 给得很激进。静态资源 max-age=31536000,文章页也给了 10 分钟的边缘缓存。

做错了的事

也有翻车的地方:

账单

最担心的账单环节:因为主力流量都在按量付费的 CDN 上,那天多花了 43 块钱。说实话比我想象的便宜多了,一次热榜的成本还不到一顿火锅。

结论:个人博客抗流量的关键不是服务器多强,而是让请求根本到不了你的服务器。

有类似经历的朋友欢迎在评论区聊聊你们的峰值数据。