内容提要
Umami 是一个开源的自托管网站统计工具,适合个人博客和小型网站。本文记录了 Umami 的安装和优化过程,包括使用 Docker 部署、Nginx 反向代理配置及跟踪代码的集成。作者分享了避免广告插件屏蔽跟踪代码、将代码部署到 CDN 以提高加载速度,以及将 Umami 集成到 API 中的方法。
延伸解读
部署前的关键考量
文章推荐使用 Docker 部署 Umami,并提供了 docker-compose.yml 示例。需要注意的是,中国大陆服务器可能无法访问官方示例中的 ghcr.io 域名,作者将其替换为 docker.umami.dev。此外,部署时需检查端口是否被占用,若被占用可修改 ports 中冒号前的端口号。默认登录账号为 admin,密码为 umami,首次登录后应及时修改。
反屏蔽与 CDN 加速的实践
Umami 默认跟踪代码容易被广告插件屏蔽,导致统计不到访客。作者建议在 docker-compose.yml 中添加 TRACKER_SCRIPT_NAME 环境变量,将脚本名改为随机字符串以规避屏蔽。若 VPS 带宽较小,可将跟踪代码下载后部署到自己的 CDN,并添加 data-host-url 指向 Umami 实际地址,同时用 data-domains 限定统计域名,避免本地测试被统计。
集成到 API 的隐藏技巧
作者还分享了将 Umami 集成到 API 的方法,以减少网络请求中的域名数量并隐藏真实 Umami 域名。思路是利用云服务商的全站加速 CDN,通过二级目录反代 Umami 的 3000 端口,并用 301 重定向转发跟踪脚本。这并非必须的优化,更多是出于个人偏好,但可间接提升隐私性。
Q&A
Umami 是什么?
Umami 是一个开源的自托管网站统计工具,适合个人博客和小型网站。
如何使用 Docker 部署 Umami?
可以通过创建 docker-compose.yml 文件并使用 'docker compose up -d' 命令来部署 Umami。
如何配置 Nginx 反向代理 Umami?
在 Nginx 配置文件中设置 server_name 和 proxy_pass 指令,以实现反向代理。
如何避免广告插件屏蔽 Umami 的跟踪代码?
在 docker-compose.yml 文件中添加环境变量 TRACKER_SCRIPT_NAME,以更改跟踪代码的名称。
如何将 Umami 的跟踪代码部署到 CDN?
将跟踪代码上传到 CDN,并在代码中配置 data_host_url 和 data_domains 参数。
Umami 如何集成到 API 中?
可以通过配置 CDN 源站的 Nginx 反向代理和重定向来集成 Umami 到 API 中。