不必搭建服务器,仅需要部署Cloudflare Worker和D1 Database,即可实现访客统计。

前提

  • cloudflare账户
  • 一个域名(备用,worker默认域名国内可能无法访问,需要新的域名)

操作步骤

主要步骤:创建D1数据库->创建Worker并关联数据库

创建D1数据库

1、进入D1 SQLite 数据库

01

2、创建数据库

02

名称自定义,位置根据可访问情况选择不重要。

3、点击探索数据,粘贴SQL文件里的代码

03
04

选择 Run all in sequence 顺序执行。

4、编辑数据库config数据表数据

05
06
07

输入你需要统计的域名,这是第二层校验,有效过滤非指定域名的数据。点击右上角 Commit 1 change 完成更新。

创建Worker并关联数据库

1、进入Cloudflare Worker

08

2、创建Worker

09

选择从 Hello World! 开始就行。

3、绑定数据库

10
11
12

注意:变量必须要填写 DB 。

4、编辑代码

13
14

右上角的编辑代码,将项目 index.js 代码复制替换当前的 JS 代码,完成后点击右上角部署。

5、设置变量

15
16

  • SALT:随机填写,建议32位以数字+小写英文混合。
  • API_KEY:用于校验请求的密钥,建议32位以数字+小写英文混合。

API_KEY 是第一层校验,用来接通 Worker ,后面 Worker 接通 D1 Database 会根据请求的域名来进行第二次校验。

6、设置定时清理访问前一天数据

17
18

每天 00:00 清理即可,不会影响正常访问。

用来触发 cleanupOldData 函数,清理访问前一天数据。历史统计不受影响。

运行逻辑

1、访客访问网站时,会请求Worker脚本,Worker脚本会判断是否为首次访问,如果是首次访问,则会在D1数据库中插入一条数据,记录访客的IP、访问时间、访问路径等信息。

2、如果不是首次访问,则会更新D1数据库中对应访客的访问时间、访问路径等信息。

3、网站通过请求Worker脚本来获取D1数据库中的数据,显示访客统计信息。

代码

具体看Github

优势

1、速度快、免费额度普通的个人博客够用

2、拓展性强

缺点

1、部署麻烦,还要自己写脚本,后期维护繁琐,迁移更是难上加难

2、免费额度有限,不适用大型博客和频繁的数据分析

总结

适合个人折腾,博主个人能力有限,只能做到这了。具体的脚本文件就不展开了,自行编写。