[开源]一款轻量级 Nginx 访问日志分析与可视化面板,提供实时统计
开源系统流程管理
![[开源]一款轻量级 Nginx 访问日志分析与可视化面板,提供实时统计](https://yy123.ink/api/img/1782599960194-m4d698.jpg)
一、开源项目简介

NginxPulse
轻量级 Nginx 访问日志分析与可视化面板,提供实时统计、PV 过滤、IP 归属地与客户端解析。
二、开源协议
使用MIT开源协议
三、界面展示


四、功能概述
IP 归属地查询策略
- 快速过滤
空值/本地/回环地址返回“本地”,内网地址返回“内网/本地网络”。 - 缓存优先
内存缓存命中直接返回(最多缓存 50,000 条)。 - 远程优先
调用 ip-api.com/batch 批量查询,超时 1.2s,单批最多 100 个。 - 本地兜底
远程失败或结果为“未知”时,IPv4 使用内置 ip2region 数据库本地查询(50ms 超时)。 - IPv6 处理
仅走远程查询,远程失败则返回“未知”。
本地数据库 ip2region.xdb 内嵌在二进制中,首次启动会自动解压到./var/nginxpulse_data/ip2region.xdb,并尝试加载向量索引提升查询性能。
本项目会访问外网 IP 归属地 API(ip-api.com),部署环境需放行该域名的出站访问。
五、技术选型
项目开发技术栈
- 后端
Go 1.23.x · Gin · Logrus - 数据
SQLite (modernc.org/sqlite) - IP 归属地
ip2region(本地库) + ip-api.com(远程批量) - 前端
Vue 3 · Vite · TypeScript · PrimeVue · ECharts/Chart.js · Scss - 容器
Docker / Docker Compose · Nginx(前端静态部署)
二次开发注意事项
环境依赖
-
Go 1.23.x(与 go.mod 保持一致) -
Node.js 20+ / npm -
Docker(可选,用于容器化)
如何使用项目
1) Docker
详细内容请查看 README.md 文档
2) Docker Compose
详细内容请查看 README.md 文档
3) 手动构建(前端、后端)
前端构建:
后端构建:
本地开发(前后端一起跑):
前端开发服务默认端口 8088,并会将 /api 代理到 http://127.0.0.1:8089。 本地开发前请准备好日志文件,放在 var/log/ 下(或确保configs/nginxpulse_config.json 的 logPath 指向对应文件)。
目录结构与主要文件
评论