网站统计——利用开源的网站流量分析统计工具

前言

github: umami仓库
umami: umami官网
demo: umami演示
机器配置: 轻量服务器(2C1G SSD 40GB)

内容

docker方式安装

通过docker方式安装 | 如果是需要调用一些api接口建议使用原生态;

docker安装

# curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# systemctl start docker
# systemctl enable docker

docker-compose安装

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

docker-compose.yml

---
version: '3'
services:
  umami:
    image: ghcr.io/mikecao/umami:postgresql-latest
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: postgresql://umami:umami@db:5432/umami
      DATABASE_TYPE: postgresql
      HASH_SALT: replace-me-with-a-random-string
    depends_on:
      - db
    restart: always
  db:
    image: postgres:12-alpine
    environment:
      POSTGRES_DB: umami
      POSTGRES_USER: umami
      POSTGRES_PASSWORD: umami
    volumes:
      - ./sql/schema.postgresql.sql:/docker-entrypoint-initdb.d/schema.postgresql.sql:ro
      - umami-db-data:/var/lib/postgresql/data
    restart: always
volumes:
  umami-db-data:

启动

# docker-compose up -d && docker-compose logs -f

原生态方式

这个是为了配合博皮使用,因为要调两个接口需要改下代码,正常使用推荐直接docker启动,不用看这块代码

克隆

git clone https://github.com/umami-software/umami.git

配置.env文件

!> 请确保这块配置且可连接成功再进行下一步操作

# cd umami/
# vi .env
# DATABASE_URL=mysql://<username>:<password>@127.0.0.1:3306/<databaseName>
// 示例 || 你也可以选择直接使用root账户
DATABASE_URL=mysql://umami:umamipassword@127.0.0.1:3306/umami

修改代码

?> 我是直接将认证那块注释了

# pages/api/website/[id]/stats.js
# pages/api/website/[id]/active.js 

编译项目

# yarn install
# yarn build
# yarn update-db

PM2

帮助命令 | pm2 --help

# npm install -g pm2
# pm2 start yarn --name umami -- start 
# pm2 startup
# pm2 save 

配置Nginx

这块是只针对源码启动的配置

location / {
    proxy_pass http://localhost:3000;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }  

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
    proxy_pass http://localhost:3000;
    expires 30d;
    access_log off;
  }

  location ~ .*\.(js|css)?$ {
    proxy_pass http://localhost:3000;
    expires 7d;
    access_log off;
  }

  location ~ /(\.user\.ini|\.ht|\.git|\.svn|\.project|LICENSE|README\.md) {
    deny all;
  }

!> 如果涉及到需要请求一些API,获取数据,比如我这边集成到博皮,那就还需要对nginx增加以下配置

  location ~* api/share {
    ## 如果是自己站点使用,这块建议使用自己域名通配符而不是*
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods 'GET,POST,PUT,DELETE,PATCH,OPTIONS';
    add_header Access-Control-Allow-Headers "DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,x-umami-share-token";

    if ($request_method = 'OPTIONS') {
         return 204;
    }
    proxy_pass http://localhost:3000;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  } 

  location ~* api/website/.*/active {
   if ($request_method = 'OPTIONS') {
         return 204;
    }
    proxy_pass http://localhost:3000;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

  } 

访问

默认账户/密码: admin/umami

配置

验证

posted @ 2022-07-22 04:36  。思索  阅读(408)  评论(1编辑  收藏  举报