不必搭建服务器,仅需要部署Cloudflare Worker和D1 Database,即可实现访客统计。
前提
- cloudflare账户
- 一个域名(备用,worker默认域名国内可能无法访问,需要新的域名)
操作步骤
主要步骤:创建D1数据库->创建Worker并关联数据库
创建D1数据库
1、进入D1 SQLite 数据库
2、创建数据库
名称自定义,位置根据可访问情况选择不重要。
3、点击探索数据,粘贴SQL文件里的代码
选择 Run all in sequence 顺序执行。
4、编辑数据库config数据表数据
输入你需要统计的域名,这是第二层校验,有效过滤非指定域名的数据。点击右上角 Commit 1 change 完成更新。
创建Worker并关联数据库
1、进入Cloudflare Worker
2、创建Worker
选择从 Hello World! 开始就行。
3、绑定数据库
注意:变量必须要填写 DB 。
4、编辑代码
右上角的编辑代码,将项目 index.js 代码复制替换当前的 JS 代码,完成后点击右上角部署。
5、设置变量
SALT:随机填写,建议32位以数字+小写英文混合。API_KEY:用于校验请求的密钥,建议32位以数字+小写英文混合。
API_KEY是第一层校验,用来接通 Worker ,后面 Worker 接通 D1 Database 会根据请求的域名来进行第二次校验。
6、设置定时清理访问前一天数据
每天 00:00 清理即可,不会影响正常访问。
用来触发 cleanupOldData 函数,清理访问前一天数据。历史统计不受影响。
运行逻辑
1、访客访问网站时,会请求Worker脚本,Worker脚本会判断是否为首次访问,如果是首次访问,则会在D1数据库中插入一条数据,记录访客的IP、访问时间、访问路径等信息。
2、如果不是首次访问,则会更新D1数据库中对应访客的访问时间、访问路径等信息。
3、网站通过请求Worker脚本来获取D1数据库中的数据,显示访客统计信息。
代码
具体看Github
优势
1、速度快、免费额度普通的个人博客够用
2、拓展性强
缺点
1、部署麻烦,还要自己写脚本,后期维护繁琐,迁移更是难上加难
2、免费额度有限,不适用大型博客和频繁的数据分析
总结
适合个人折腾,博主个人能力有限,只能做到这了。具体的脚本文件就不展开了,自行编写。

















