阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用Docker自建一个简洁美观的网站统计(分析)Umami

52次阅读
没有评论

共计 3319 个字符,预计需要花费 9 分钟才能阅读完成。




本站提供 Linux 服务器运维,自动化脚本编写等服务,如有需要请联系博主微信:xiaozme

2022 年 5 月 10 日 U -Web(CNZZ(友盟))对所有未付费账号关闭服务,参考:《关于友盟 + U-Web 统计分析产品功能调整的公告》。其实可替代的产品挺多的,比如国内的百度统计、51la,国外的 Google Analytics。如果你都不爽,还可以自建网站统计,比如 umami、Plausible、matomo,今天来聊一聊自建方案之一的 umami。

关于 Umami

官网是这样介绍的:

Umami 是一个简单、易于使用、自托管的网络分析解决方案。目标是为您提供一个更友好、注重隐私的 Google Analytics 替代方案,以及一个免费、开源的付费解决方案替代方案。Umami 只收集您关心的指标,所有内容都放在一个页面上。

使用 Docker 搭建 Umami

前提条件:

我的场景:

因为每个人的环境可能不一样,所以这篇文章不一定适合所有人,但是可以用于参考。xiaoz 已经在服务器本机安装了 MySQL 数据库,所以我在使用 Docker 部署的时候没有在额外安装 MySQL 服务,而是直接利用现有的 MySQL

导入数据库:

  1. 您需要自行创建一个 MySQL 数据库用来给 Umami 使用
  2. 然后下载官方的初始数据导入到数据库中,这是初始 SQL 语句下载地址:https://raw.githubusercontent.com/mikecao/umami/master/sql/schema.mysql.sql

我这里已经创建好了一个名为 umami 的数据库,并导入了初始数据schema.mysql.sql

docker-compose 部署 Umami

如果您还没有安装 docker-compose,请先参考官方文档安装:https://docs.docker.com/compose/install/

使用 docker-compose 部署的目的是方便后续维护和管理,您需要新建一个 docker-compose.yaml 的文件,里面的内容如下:

---
version: '3'
services:
  umami:
    image: ghcr.io/mikecao/umami:mysql-latest
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: mysql://username:password@127.0.0.1:3306/umami
      DATABASE_TYPE: mysql
      HASH_SALT: replace-me-with-a-random-string
    restart: always
    network_mode: "host"

参数含义如下,请根据自己的情况修改:

  • username:MySQL 用户名
  • password:MySQL 密码
  • 127.0.0.1:3306:MySQL 连接地址和端口
  • umami:MySQL 数据库名称

这里我使用了 HOST 网络,network_mode: "host",原因是我 MySQL 在宿主机上搭建的,如果不指定为 HOST 网络无法和 Docker 通信。

接着使用命令 docker-compose up -d 启动即可。

访问 Umami

搭建完毕后,Umami 默认使用 3000 端口,输入http://IP:3000 就可以访问了,默认用户名:admin,密码为umami

默认为英文界面,登录后点右上角的“地球”图标,可以修改为中文。

Nginx 反向代理

通过 IP + 端口的访问方式只适合临时测试,显然不太适合用于生产,我们可以通过 Nginx 反向代理实现域名访问。

以下是 nginx 反向代理配置,仅做参考,请根据实际情况修改:

server
{
    listen 80;
    listen 443 ssl http2;
    server_name domain.com;
    index index.php index.html index.htm default.php default.htm default.html;

    #SSL-START SSL 相关配置,请勿删除或修改下一行带注释的 404 规则
    #error_page 404/404.html;
    #HTTP_TO_HTTPS_START
    if ($server_port !~ 443){rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END
    ssl_certificate    /www/server/panel/vhost/cert/domain.com/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/domain.com/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;

    #SSL-END

    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END

    #PHP-INFO-START  PHP 引用配置,可以注释或修改
    #清理缓存规则

    location ^~ /
    {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;

        add_header X-Cache $upstream_cache_status;

        #Set Nginx Cache

        set $static_fileceZTfEud 0;
        if ($uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
        {
            set $static_fileceZTfEud 1;
            expires 12h;
            }
        if ($static_fileceZTfEud = 0)
        {add_header Cache-Control no-cache;}
    }

    access_log  /www/wwwlogs/domain.com.log;
    error_log  /www/wwwlogs/domain.com.error.log;
}

如果是宝塔用户的话也可以直接使用宝塔提供的反向代理功能,按照截图设置即可。

Umami 使用体验

Umami 的功能比较简单,总共选项也不多,上手没有难度。功能上来说只能说够用,比较适合个人或者小公司使用。

总结

  1. Umami 的安装依赖 MySQL 或 Postgresql 数据库
  2. 安装前需要先导入初始数据
  3. 默认用户名为admin,密码为umami
  4. Umami 界面简洁美观,支持多种语言
  5. Umami 功能比较简单,但数据不够丰富,功能上比起百度统计、Google Analytics 还差很远,想要替代这些商业统计还有很长的路要走

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计3319字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中