当前位置:首页 >  站长 >  网站运营 >  正文

网站流量全靠猜?GoAccess 一个命令把 access.log 变成可视化报表

 2026-08-28 16:40  来源: 互联网   我来投稿 撤稿纠错

  一键部署OpenClaw

 

想看昨天哪个页面流量最大、蜘蛛抓了多少、404 都出在哪,去后台翻统计插件数据又慢又不全——统计脚本本身还拖累页面速度。其实答案全在 access.log 里,GoAccess 能把日志直接变成终端里的实时报表,不碰你的网站一行代码。

# 安装

yum install -y epel-release && yum install -y goaccess

# 最常用的命令:实时终端报表

goaccess /var/log/nginx/access.log --log-format=COMBINED

# 安装
yum install -y epel-release && yum install -y goaccess

# 最常用的命令:实时终端报表
goaccess /var/log/nginx/access.log --log-format=COMBINED

回车后就是一块信息面板:独立访客数、请求量、带宽、404 清单、来路域名、操作系统、浏览器、爬虫命中,全在滚动条里切换。数据是直接从日志算的,比任何 JS 统计都真实——JS 统计算不到搜索引擎爬虫,而站长恰恰需要知道爬虫在干什么。

三个站长最该看的面板。第一是爬虫(Crawlers),Google 的抓取量突然腰斩,大概率是网站出了问题,能比搜索排名掉下来早发现两周。第二是 404 页面,外链打错、改版没做 301 的死链全在这,挑权重高的补跳转。第三是状态码分布,502 一多就回去翻 PHP-FPM 那篇。

想给别人看,生成一份 HTML 报表更直观:

# 生成静态HTML报表
goaccess /var/log/nginx/access.log \
--log-format=COMBINED -o /var/www/report.html

# 实时HTML( WebSocket 推送)
goaccess /var/log/nginx/access.log \
--log-format=COMBINED -o /var/www/report.html --real-time-html --daemonize

报表文件记得放到有密码保护的目录,流量数据是商业敏感信息,别裸奔在公网。

进阶用法是结合 awk 做日志里没有的维度,比如查某个 IP 的全部访问轨迹再喂给 fail2ban,几件工具串起来就是一套简易风控。日志是服务器最诚实的记录员,学会用它,比装十个统计插件都管用。

数据来源:GoAccess官方文档

申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!

相关标签
网站流量
php教程

相关文章

  • 网站挂了三小时才知道?Uptime Kuma 自建监控,挂了秒级通知

    最伤站长的不是故障本身,是故障三小时后才被用户告知。自建一套监控是性价比最高的运维投入,开源的UptimeKuma一个人五分钟就能跑起来,界面像UptimeRobot,但数据全在自己手里,监控频率也不受免费版限制。用Docker部署最省心:dockerrun-d--restart=always\-p

    标签:
    php教程
  • 用户昵称带个表情就存不进去?MySQL utf8 转 utf8mb4 完整迁移方案

    用户注册昵称是表情符,提交后昵称变成空白,或者干脆报错Incorrectstringvalue。这是MySQL老utf8的锅:它的utf8实现最多三个字节,而emoji和部分生僻字是四字节字符,塞不进去。真正的完整UTF-8在MySQL里叫utf8mb4,mb4就是mostbytes4。迁移分四层:

    标签:
    php教程
    mysql
  • 手滑 DELETE 忘了 WHERE?binlog 十分钟找回误删数据

    DBA圈流传一句话:没删过库的人生不完整。但删了能找回来,才是真本事。误删数据的救命稻草就是binlog——它记录了每一行数据的变更,既能用来恢复,也能反查哪条语句闯的祸。前提是提前开了log-bin,没开的话神仙难救,所以第一件事去检查配置。SHOWVARIABLESLIKE'log_bin';-

  • 页面白屏不报错?把 PHP 的错误日志配明白,排错效率翻倍

    线上环境出于安全把错误显示关了,这是对的——报错信息暴露路径给攻击者等于送情报。但代价是出了问题页面上啥都没有,只剩白屏。正确姿势是:页面上不显示,错误全部落日志。;php.ini生产环境错误处理四件套display_errors=Off;页面不显示错误log_errors=On;错误写日志erro

    标签:
    php教程
  • 定时任务还在页面里套 include?cron + PHP CLI 才是正路

    见过不少老站的处理方式:写个task.php,靠别人挂个监控或者用JS定时刷来触发,更狠的是每次有人访问首页顺带跑一遍统计。这些歪招的共同问题是不可控——没人访问就不跑,被搜索引擎高频抓取就狂跑。定时任务就该交给系统的cron。PHP从命令行跑有个专属的SAPI叫CLI,和网页那套php-fpm是两

    标签:
    php教程

热门排行

信息推荐