Everything

在宝塔下使用Umami自建站点访问统计系统

by Mion, 2021-09-18


一直以来就有想要给无人问津的博客添加一个访问统计。在尝试过百度统计、Google Analytics后发现总是会被Adblock Plus拦截,且本身的需要仅仅是需要一个简单的访问统计和来源分析,用不着太复杂的功能,于是准备自建站点访问统计。

Umami


Umami

Umami是一个简介且易于使用的自建网站访问分析系统,基于Node.js构建且支持PostgreSQL与MySQL数据库。实测能够很好的解决被Adblock插件屏蔽的问题。

官网:https://umami.is/

文档:https://umami.is/docs/

GitHub:https://github.com/mikecao/umami

安装与配置

安装环境

  • 宝塔 7
  • Nginx 1.21
  • MySQL 5.6
  • Docker-compose

数据库配置

首先从https://github.com/mikecao/umami/blob/master/sql/schema.mysql.sql获取SQL文件,在宝塔中新建数据库,在这里选择utf8mb4字符集。


MySQL_CONFIG

然后通过宝塔导入SQL文件。

Docker与docker-compose安装

在宝塔【软件管理】 - 【运行环境】中安装 Docker管理器自动配置好Docker环境,之后在终端中执行以下指令获取最新版docker-compose:

# curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# docker-compose --version

如果最后成功输出版本信息则代表成功安装。与此同时如果正确配置了pip,也可以执行以下指令进行安装:

# pip install docker-compose

docker-compose.yml

由于宝塔环境已经带有MySQL环境,在这里我们仅需要使用Umami的Docker镜像即可,在这里提供一份我魔改后的docker-compose.yml文件,将以下的数据库信息修改后保存至本地即可,我选择保存至/home/umami目录中。

version: '3'
services:
  umami:
    image: ghcr.io/mikecao/umami:mysql-latest
    network_mode: "host"
    environment:
      DATABASE_URL: mysql://[用户名]:[密码]@localhost:3306/[数据库名]
      DATABASE_TYPE: mysql
      HASH_SALT: [随便编写一段字符串]
    restart: always

接下来使用docker-compose构建容器,若下载速度较慢,请参考本文章:使用代理为docker-compose加速

# cd /home/umami
# docker-compose up -d

至此容器构建完成,Umiami运行在http://127.0.0.1:3000下。

使用Nginx进行反向代理与跨域配置

在宝塔中新建网站,配置SSL后选择反向代理,配置如下:


Nginx_Proxy

之后在【配置文件】第7行后添加以下内容来配置跨域:

    ...
    root /www/wwwroot/xxx;
    add_header Access-Control-Allow-Origin * always;
    add_header Access-Control-Allow-Methods GET,POST,DELETE;
    add_header Access-Control-Allow-Header Content-Type,*;
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    ...

若使用CDN服务,也需要在CDN处配置跨域。

添加站点与使用

访问刚才配置好的站点,使用默认账户名admin与密码umami进行登录。(题外话:写到这里被老师点起来回答CRC的过程了,记录一下,吓死去...)


console

选择【Settings】-【Websites】-【Add website】,填写网站名称与域名后,将获得的代码添加至网站</head>标签之前。如果以上步骤未出现差错的话,刷新Umami即可获得访问记录。(右上角球形图标可以切换语言)

类似于Umami这类网站访问统计系统还有很多,但它简单与轻量的特性非常符合我的需求。本博客已经使用Umami一段时间,整体非常稳定,合理的配置后并不会拖慢网站整体访问速度。在高并发下如果配置多容器做负载均衡也是不错的解决方案。

作者: Mion

2022 © Mion'Blog & Theme By xingr