字
字节笔记本
2026年2月22日
pageview-worker:基于 Cloudflare Workers 的轻量级页面统计服务
pageview-worker 是一个基于 Cloudflare Workers 和 KV 的轻量级页面浏览量统计后端服务。它无需服务器维护,利用 Cloudflare 的边缘计算能力,为静态网站或个人博客提供简单高效的访问量统计功能。
项目简介
pageview-worker 由 jiacai2050 开发维护,是一个开源的页面浏览量统计解决方案。该项目充分利用 Cloudflare Workers 的无服务器架构和 KV 存储,实现了零成本、高性能的访问量统计功能。截至目前,该项目在 GitHub 上已获得 43 stars,主要使用 JavaScript 编写。
核心特性
- 无服务器架构:基于 Cloudflare Workers,无需维护服务器
- 边缘计算:利用 Cloudflare 全球边缘节点,响应速度快
- KV 存储:使用 Cloudflare KV 持久化存储访问数据
- 轻量级:核心代码仅一个 worker.js 文件,部署简单
- 详细统计:记录 URL、标题、来源、User-Agent、IP、国家、城市等信息
- 实时演示:提供在线演示页面,可实时查看效果
技术栈
- Cloudflare Workers - 无服务器边缘计算平台
- Cloudflare KV - 分布式键值存储
- JavaScript - 主要编程语言(占比 96.3%)
- Makefile - 构建脚本(占比 3.7%)
安装指南
前置要求
- Cloudflare 账号
- Wrangler CLI 工具(可选,用于本地开发)
部署步骤
- 克隆仓库
bash
git clone https://github.com/jiacai2050/pageview-worker.git
cd pageview-worker- 创建 Cloudflare Worker
参考 Cloudflare Workers 快速入门指南 创建 Worker,并部署 worker.js 文件。
- 配置 KV 绑定
在 Cloudflare Dashboard 中,为 Worker 添加 KV 命名空间绑定:
- 绑定名称必须是
KV(项目硬编码) - 参考 官方文档 了解如何绑定 KV
- 添加追踪代码
在需要统计的 HTML 页面中添加以下 JavaScript 代码:
javascript
const apiEndpoint = 'https://your-worker.your-subdomain.workers.dev/write';
const payload = {
'url': document.location.href,
'title': document.title,
'referrer': window.frames.top.document.referrer,
};
fetch(`${apiEndpoint}?${new URLSearchParams(payload)}`, {mode: 'no-cors'})
.catch(console.log);记得将 apiEndpoint 替换为你的 Worker 地址。
快速开始
查看统计数据
项目提供了 demo/index.html 作为数据查看面板:
- 复制
demo/index.html到你的网站 - 修改文件中的
apiEndpoint为你的 Worker 地址 - 访问页面即可查看所有收集的浏览数据
在线演示
- 演示地址:https://jiacai2050.github.io/pageview-worker
- Demo 1:https://jiacai2050.github.io/pageview-worker/demo1.html
- Demo 2:https://jiacai2050.github.io/pageview-worker/demo2.html
⚠️ 注意:演示页面会收集你的 IP/国家/城市信息,请谨慎访问。
数据收集说明
当访问包含追踪代码的页面时,以下信息会被保存到 KV:
| 字段 | 说明 |
|---|---|
| URL | 访问页面的完整地址 |
| Title | 页面标题 |
| Referrer | 来源页面 |
| User-Agent | 浏览器标识 |
| IP | 访问者 IP 地址 |
| Country | 国家(由 Cloudflare 自动识别) |
| City | 城市(由 Cloudflare 自动识别) |
项目结构
text
pageview-worker/
├── .github/workflows/ # GitHub Actions 工作流
├── demo/ # 演示文件
│ ├── index.html # 数据查看面板
│ ├── tracking.js # 追踪代码
│ ├── demo1.html # 演示页面 1
│ └── demo2.html # 演示页面 2
├── worker.js # 核心 Worker 代码
├── wrangler.toml # Wrangler 配置文件
├── Makefile # 构建脚本
├── LICENSE # GPL-3.0 许可证
└── README.org # 项目文档类似项目推荐
如果你对其他 Cloudflare Workers 项目感兴趣,可以参考以下项目:
- cf-workers-status-page - 基于 Workers 的状态监控页面
- hono - 适用于边缘环境的超快 Web 框架
- miniflare - Cloudflare Workers 的本地模拟器
许可证
本项目采用 GPL-3.0 开源许可证。
项目链接
分享: