后台统计每天显示几百访问,服务器日志里的独立请求却是几千。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
curl -I https://www.example.com/ grep -v -i 'bot\|spider' access.log | wc -l
统计脚本被浏览器拦截或页面未执行到底,机器人请求也被计入日志。这一点先确认清楚,后面就不用反复试。
碰到「统计代码不生效」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。
动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。
先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。别只看报错的最后一行,往上看几行,真正的起因通常在上面。
具体做法是,确认脚本是否加载成功;过滤日志中的爬虫;对比同一天的访问明细。
改完照着核一遍,统计口径与过滤后的日志接近,差异可解释。