一、 Docker 服务部署(1Panel)
在 1Panel 中创建应用或使用 Docker Compose 编排,核心配置如下:
services:
busuanzi:
image: "xcsoft/busuanzi:latest"
container_name: busuanzi
ports:
- "127.0.0.1:8080:8080" # 仅监听本地,通过反代暴露
networks:
- 1panel-network
environment:
WEB_LOG: true
WEB_DEBUG: false
WEB_CORS: | # ⚠️ 必须包含主站+子域名,注意末尾逗号
http://qiyec.site,
https://qiyec.site,
http://busuanzi.qiyec.site,
https://busuanzi.qiyec.site
BSZ_EXPIRE: 0 # 0=永不过期
BSZ_SECRET: "xxxx" # 自定义随机密钥
API_SERVER: https://busuanzi.qiyec.site # ✅ 填写反代子域名
REDIS_ADDRESS: redis:6379 # 同网络下直接使用容器名
REDIS_PASSWORD: xxxx
REDIS_DATABASE: 10 # 建议避开默认0库
REDIS_TLS: false
BSZ_PATHSTYLE: true
BSZ_ENCRYPT: MD516
restart: no
networks:
1panel-network:
external: true关键点:
API_SERVER必须与实际反向代理绑定的子域名一致;WEB_CORS需同时放行主站(前端调用方)和子域名(调试用)。
二、 1Panel 反向代理配置
三、 Halo 博客接入配置
根据你的主题类型选择以下任一方式:
方式 A:Dream2.0 Plus 主题(推荐,v1.8.8+)
进入「主题设置 → 增强功能 → busuanzi 访客统计」:
统计服务选择:自建服务
不蒜子 JS 地址填写:
https://busuanzi.qiyec.site/js
方式 B:通用 HTML 手动注入
在主题的页脚或 <head> 区域添加:
<!-- 引入脚本 -->
<script defer pjax data-prefix="busuanzi_value" src="https://busuanzi.qiyec.site/js"></script>
<!-- 展示数据 -->
本站总访问量 <span id="busuanzi_value_site_pv"></span> 次
本站总访客数 <span id="busuanzi_value_site_uv"></span> 人四、 验证清单
浏览器 F12 Network 面板确认
https://{反代域名}/api请求返回 200Console 无 CORS 跨域报错
Redis 容器与 busuanzi 处于同一
1panel-network网络修改配置后重启docker容器
五、参考文档
【Halo博客】自建busuanzi服务及Halo接入流程
https://qiyec.site/archives/Iiuk2Zip
评论