我的网站,真人流量只剩 1 个人
前几天博客宕机 41 小时,修好之后我顺手做了一件事:把观澜这个站的 nginx 日志全部拉出来,做了次体检。
14.7 天,16.6 万条请求,一条条过。
然后我看到一行数据,盯着看了很久。
10 月 2 日,真人访客:1 个。
前一天,5 个。九月中旬的峰值,195 个。
那个唯一的访客,大概率还是我自己,因为我当时正在验证新文章的链接。
体检方法:先定义什么是"真人"
先交代口径,不然数字会被抬杠。
我把请求分成两类:带浏览器特征、有正常页面浏览行为的,算真人;其余的 User-Agent、扫描器、脚本调用,全部算自动化。16.6 万条请求过完,真人的占比是 8%。
也就是说,这个站 92% 的流量,没有一个"人"在场。
UV 的走势更难看。9 月 19 日峰值 195,9 月 21 日之后零回流,一路阴跌到 10 月 1 日的 5 个、10 月 2 日的 1 个。
渠道数据顺便也验了:没有 referer 的请求占 67%,从 Twitter 过来的只有 80 次,Google 带来 48 次,微信 38 次。
说白了,这个站从来没有建起过任何渠道。之前没数据的时候,我还觉得"只是没传播"。
现在数据说:不是没传播,是没有读者。
第一个意外:限流在打自己人
日志里有个反常的数字。观澜内置了一个翻译接口的反代,14.7 天被调用了 4.5 万次,成功了 3.6 万次。
谁在这么勤快地用我的翻译接口?
顺着 IP 看,我给这个接口配了限流,每天 503 掉 8524 次。而被限流的 IP,只有一两个。
一个是我自己家宽段的脚本,我自己的东西。另一个是某公司出口网段,挂着大量视频拉流任务,也是我自己的东西。
我精心配置的限流规则,枪口 100% 对着自己人。
真人反而从来没被限过,因为他们压根不来。
第二个意外:AI 爬虫比真人勤快三倍
再看来的是谁。ClaudeBot 来了 1575 次,PerplexityBot 875 次,CCBot 从 GCP 的集群上来回爬。这些还是报正经名号的。
最勤快的是一个假 Googlebot,伪装成谷歌的 UA,溯源到一家托管商,14 天抓了 1.4 万次,另有一台挪威的机器跟着凑了 8700 多次。
AI 时代的生态位就是这样:我的站,AI 比真人更在乎。抓取量是真人的三倍。
顺带验证了安全性:.env 被试探了 3.3 万次,.php 扫了 1.3 万次,.git 试了 3259 次,全部被 404 兜住,零泄露。扫描是常态,常态到可以当背景噪音。
带宽账也顺便算了:一个视频文件被拉走 1.57GB,占全站流量的 41%,还没做分段拉流。这是下一个要修的。
第三个意外:统计本身也是脏的
体检查出一个配置缺陷。站站在 Cloudflare 后面,nginx 靠一份 set_real_ip_from 配置把 CF 节点 IP 还原成真实访客 IP,但这份名单没有覆盖 CF 的全部网段。
结果就是一部分请求的真实 IP 被记成了 CF 节点的地址。统计被污染,基于 IP 的限流和封禁也跟着失真。
这个缺陷短期内不影响服务,但它让"我以为的流量画像"从一开始就不准。修复方案很成熟:按官方网段清单全量补齐。这也是这次体检的产出之一。
那么,站还做不做
把数据摊开之后,朋友问了我同一个问题:都没人看了,还更新吗。
我的答案暂时没变。这个看板最初就是给我自己做的,它每天都在干活,真人流量是副产品。副产品是零,主产品还在,就不算失败。
但"副产品是零"这件事被数字钉死之后,有一件事变得诚实地紧迫:要么开始认真建渠道,要么就承认它是自用工具,停止假装它在被阅读。
最怕的是中间态:更得勤勤恳恳,又当它有读者。
先从这篇开始试试。如果你是真人,读到了这里,欢迎让我知道。
← 返回博客列表 · 相关阅读:41 小时静默宕机复盘 · 观澜看板复盘