Vercount: 一个比不蒜子更好的网站计数器
最近不蒜子计数挂了好几天,最终下定决心,自己部署一个网站计数器,于是就有了 Vercount。
项目地址
欢迎各位大佬 Star 一下。
Vercount 是一个完美的不蒜子计数替代方案,它的特点是:
- 速度快,服务器响应时间在 10ms 以内
- 使用 POST 请求进行统计,不再使用不蒜子的过时 Referrer 方法进行统计,实现移动端 / Firefox / Safari 等浏览器的准确统计。
- 使用 Json 回调,不再使用不蒜子的 JSONP 回调方法,防止 CSRF 攻击,详情请看:JSONP
- 初始化自动同步 (site_pv, site_uv, page_pv) 所有不蒜子的数据,无需手动操作
- 自动保持和不蒜子的数据同步,每访问一次,数据就会自动同步
- 兼容不蒜子的 span 标签,可以无缝切换
- 使用 Upstash Redis 作为数据存储,数据不会丢失,保证 99.99% 可用性
- 使用 Vercel Serverless Functions 作为后端,保证 99.99% 可用性
- 使用 Vercel 全球 CDN 作为前端,保证 99.99% 可用性
过程
Vercount 的后端使用 NextJS + Redis + Vercel Serverless Functions,前端使用 Vercel CDN,不再基于原项目的 Replit 和本地 Redis。
对之改进的地方有:
- 重写后端获取不蒜子数据代码,现在支持同步所有不蒜子数据,包括 site_pv, site_uv, page_pv。原项目仅支持同步 site_uv。
- 重写为异步请求,加快请求处理速度
- 重写客户端 client 的 JS 代码,取消原本不蒜子的 JSONP 回调,改为使用 JSON 请求,防止 CSRF 攻击,详情请看:JSONP
- 重写客户端 client 的 JS 代码,取消原本不蒜子的 Referrer 统计方法,改为使用 POST 请求,实现移动端 / Firefox / Safari 等浏览器的准确统计。
为什么要做这个项目?
不蒜子是一个很好的网站计数器,但是它的缺点也很明显:
- 不蒜子速度慢,不稳定,经常会出现 502 错误。
- 不蒜子的代码已经过时,使用的是 Referrer 方法进行统计,这种方法在移动端 / Firefox / Safari 上统计不准确。
- 不蒜子的代码使用的是 JSONP 回调,这种方法容易受到 CSRF 攻击,威胁网站安全,详情请看:JSONP
这个项目的目的就是为了解决这些问题,让网站计数器更快,更稳定,更安全。无需自己部署,无需自己维护,只需要引入一个 script 标签就可以使用。
后续会增加更多的功能,比如:自定义网站统计数据等。
从不蒜子切换到 Vercount
直接替换不蒜子的 script 标签即可,不需要修改任何代码。数据会在初次访问时自动从不蒜子同步。
1 | <script defer src="https://vercount.one/js"></script> |
快速使用
将这个 script 添加到你的网站中,
1 | <script defer src="https://vercount.one/js"></script> |
在你的网站中添加上面的 script 之后,和不蒜子一样,你的网站就可以开始统计了,比如。
1 | 本文总阅读量 <span id="busuanzi_value_page_pv"></span> 次 |
统计方式
对于 page_view 网站访问量, 每访问一次加一.
对于 user_view 访客量, 会通过用户浏览器的 UserAgent 以及用户的IP地址 进行判断.
License
本项目使用 AGPL 协议。
GitHub 项目:https://github.com/EvanNotFound/vercount
- Title: Vercount: 一个比不蒜子更好的网站计数器
- Author: Evan Luo
- Created at : Jan 4 2024 14:06:17
- Updated at : Nov 19 2024 01:55:15
- Link: https://ohevan.com/vercount-website-counter-busuanzi-alternative.html
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments