Vercount: 一个比不蒜子更好的网站计数器

Evan Luo MVP++

最近不蒜子计数挂了好几天,最终下定决心,自己部署一个网站计数器,于是就有了 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
2
3
4
本文总阅读量 <span id="busuanzi_value_page_pv"></span>
本文总访客量 <span id="busuanzi_value_page_uv"></span>
本站总访问量 <span id="busuanzi_value_site_pv"></span>
本站总访客数 <span id="busuanzi_value_site_uv"></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