本文最后更新于 2026年3月22日。
编排
services:
goaccess:
image: allinurl/goaccess:latest
container_name: goaccess
restart: always
ports:
- "7890:7890" # 实时 WebSocket 端口
- "8080:80" # 浏览器访问 Web 报表的端口
volumes:
# 关键:将你的 Nginx 日志目录挂载到容器内
# 请将左侧路径替换为你 WordPress Nginx 日志的实际物理路径
- /opt/1panel/www/sites/www.weiyoun.com/log:/opt/log
# 用于持久化保存生成的 HTML 报表
- /share/dockerdata/goaccess/report:/opt/www
environment:
# 配置日志格式,通常 Nginx 使用 COMBINED 格式
- LANG=en_US.UTF-8
entrypoint: ["/bin/sh", "-c"]
command: >
"goaccess /opt/log/access.log
--log-format='%h %^ %^ [%d:%t %^] \"%r\" %s %b \"%R\" \"%u\" %^'
--date-format=%d/%b/%Y
--time-format=%H:%M:%S
--output=/opt/www/index.html
--real-time-html
--addr=0.0.0.0
--ws-url=ws://localhost:7890"
可能我的日志文件太大,或者有空行,或者是GoAccess自带的web服务太差了,访问8080 web端口时拒绝。
但是实际上报告已经生成了,所以我把/opt/www里面的报告下载下来分析。
这是分析结果

不研究不知道,一看真是恶意流量太多了,我的网站这么多年受苦了,承受这么多。难怪有时候磁盘读取写入量太高导致卡顿。
看看后台安全插件还有大量的登录尝试,企图暴力破解。

同时也提醒大家,如果把自己的内网暴露到外网一定做好防护。