天眼
75.1MB · 2026-02-07
大家好,我是 Java陈序员。
对于运维人员、站长来说,Nginx 日志是分析网站访问情况的核心,但逐行翻阅、手动统计 PV/UV、排查 IP 归属地的过程,耗时又费力。尤其是多站点部署时,不同日志文件切换、数据零散的问题,更是让人效率大打折扣。
今天,给大家推荐一款开源的轻量级 Nginx 日志分析可视化面板,告别逐行翻日志!
nginxpulse —— 一款轻量级 Nginx 访问日志分析与可视化面板,提供实时统计、PV 过滤、IP 归属地与客户端解析。
功能特色:
技术栈:
Go + SQLite + Ip2RegionVue3 + Vite + TypeScript1、拉取镜像
docker pull magiccoders/nginxpulse:latest
2、创建挂载目录
mkdir -p /data/software/nginxpulse
3、运行容器
docker run -d --name nginxpulse
-p 8088:8088
-p 8089:8089
-e WEBSITES='[{"name":"Java陈序员","logPath":"/share/log/nginx/access.log","domains":["chencoding.top","chencoding.top"]}]'
-e ACCESS_KEYS='["key-1","key-2"]'
-v /data/software/nginx/access.log:/share/log/nginx/access.log:ro
-v /data/software/nginxpulse:/app/var/nginxpulse_data
magiccoders/nginxpulse:latest
参数说明:
8088:前端访问端口8088:后端访问端口-e WEBSITES:指定网站列表的 JSON 数组,字段:name、logPath、domains(可选)-e ACCESS_KEYS:访问密钥列表,为非空数组时,访问 UI 和 API 都需要提供密钥4、浏览器访问
http://{IP/域名}:8088
1、创建 docker-compose.yml 文件,并写入如下内容:
version: "3.8"
services:
nginxpulse:
image: magiccoders/nginxpulse:latest
container_name: nginxpulse
ports:
- "8088:8088"
- "8089:8089"
environment:
WEBSITES: '[{"name":"Java陈序员","logPath":"/share/log/nginx/access.log","domains":["chencoding.top","chencoding.top"]}]'
ACCESS_KEYS: '["key-1","key-2"]'
volumes:
- /data/software/nginx/access.log:/share/log/nginx/access.log:ro
- /data/software/nginxpulse:/app/var/nginxpulse_data
- /etc/localtime:/etc/localtime:ro
restart: unless-stopped
2、启动运行
docker compose up -d
WEBSITES 的值是个数组,参数对象中传入网站名、网址、日志路径。例如:
environment:
WEBSITES: '[{"name":"网站1","logPath":"/share/log/nginx/access-site1.log","domains":["www.kaisir.cn","kaisir.cn"]}, {"name":"网站2","logPath":"/share/log/nginx/access-site2.log","domains":["home.kaisir.cn"]}]'
volumes:
- ./nginx_data/logs/site1/access.log:/share/log/nginx/access-site1.log:ro
- ./nginx_data/logs/site2/access.log:/share/log/nginx/access-site2.log:ro
如果有很多个网站要分析,可以考虑将日志目录整体挂载进去,然后在 WEBSITES 里去指定具体的日志文件即可。例如:
environment:
WEBSITES: '[{"name":"网站1","logPath":"/share/log/nginx/access-site1.log","domains":["www.kaisir.cn","kaisir.cn"]}, {"name":"网站2","logPath":"/share/log/nginx/access-site2.log","domains":["home.kaisir.cn"]}]'
volumes:
- ./nginx_data/logs:/share/log/nginx/
nginxpulse 还支持直接解析 .gz 压缩日志,logPath 可指向单个 .gz 文件或使用通配符。例如:
{"logPath": "/share/log/nginx/access-*.log.gz"}
不管是个人站长、中小企业运维,还是个人开发,nginxpulse 都能帮你告别繁琐的日志分析,用最简单的方式掌握网站访问数据。快去试试吧~
项目地址:
推荐的开源项目已经收录到 GitHub 项目,欢迎 Star:
或者访问网站,进行在线浏览:
#/