之前看了一下网站的网络响应,可以说busuanzi占用了50%多的时间,busuanzi不蒜子太慢太卡,而很多静态博客都是用的busuanzi。毕竟公益免费。但是速度实在是太慢了,严重拖垮了网站速度。所以我放弃了数百万的数据,还是自搭建比较香,博客速度提升一大截。

看到杜老师开的公益项目,自搭建了一个busuanzi。所以说如果你想直接白嫖的话可以用一下杜老师提供的服务。使用杜老师服务就不需要再看下去啦~

杜老师自建国内不蒜子统计平台

请勿使用本文示例的busuanzi地址,因为有域名限制,仅限我使用

因为我个人习惯对于数据要求有掌控能力,并且对于用户隐私有一些方面的考量,所以这个文章就是具体介绍如何自己搭建busuanzi服务。相比于项目的官方文档,这个博客文章会更加细致的介绍,并对文档一些错误内容进行修正。

Github项目地址

项目作者

如果你使用了原版的不蒜子,你可以在部署后查看迁移教程

需要

你需要拥有一台服务器,拥有docker环境并支持docker-compose。宝塔环境。

添加站点

我们来添加一个站点,例如我添加的是busuanzi.zhheo.com,你也可以根据你的域名添加一个。

添加网址

PHP版本选择纯静态。

新建docker-compose

我们点击根目录下的地址进入根目录。新建文件docker-compose.yaml

新建空白文件

里面的内容为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
version: "3.8"

services:
redis:
image: "redis:alpine"
volumes:
- ./data/redis:/data

bsz:
image: "xcsoft/busuanzi:latest"
ports:
- "8080:8080" # 修改映射到宿主机的端口 host:container
volumes:
- ./data/bsz:/app/expose
links:
- redis
depends_on:
- redis
environment:
WEB_LOG: true # 是否开启日志
WEB_DEBUG: false # 是否开启debug模式
WEB_CORS: "*" # 跨域访问
BSZ_EXPIRE: 0 # 统计数据过期时间 单位秒, 请输入整数 (无任何访问, 超过这个时间后, 统计数据将被清空, 0为不过期)
BSZ_SECRET: "bsz" # 签名密钥 // 请设置为任意长度的随机值
API_SERVER: http:\/\/127.0.0.1:8080\/api # 填写你的 API 地址 需要转译 (即 用 `\/` 替代 `/`)
REDIS_ADDRESS: redis:6379 # redis 地址
BSZ_PATHSTYLE: true
BSZ_ENCRYPT: MD516

其中你需要修改API_SERVER为你的地址,例如你的网址为busuanzi.zhheo.com,那么就需要填写https:\/\/busuanzi.zhheo.com\/api

上面的8080:8080如果你服务器8080端口已经被占用,可以修改第一个8080改成别的,例如8999:8080

执行

使用ssh登录服务器,cd进入你的网站目录例如cd /www/wwwroot/busanzi.zhheo.com,然后执行docker-compose up -d

设置反代

我们回到网站设置,设置一下nginx的反代

反代设置

其中,http://127.0.0.1:8080的地址端口号8080根据上面你自行设置的端口号而改变。

设置解析

前往你的域名提供商进行解析设置,解析到你的服务器。

大功告成!

直接访问你的地址就可以看到了,然后将地址更改为你的地址即可。

教程

例如https://busuanzi.zhheo.com/js

另外遇到的一个小坑

我发现我直接导入的时候busuanzi没有运行,后来发现我的统计id名不一样。

这个的id名为:busuanzi_page_pv

我的原来是:busuanzi_page_value_pv

如果你的也是busuanzi_value_site_pv,需要更改一下。butterfly主题可以到themes/butterfly/layout/includes/header/post-info.pug文件中修改

修改代码

迁移原版不蒜子数据

如果你使用了原版的不蒜子,你可以在部署后查看迁移教程