可通过Nginx的log_format和location匹配实现静态资源访问日志的轻量级归档,配置专用格式记录时间、IP、URI、状态码等字段,按后缀匹配静态路径并启用独立日志输出,配合logrotate轮转与压缩,支持基础分析或对接ELK/Loki。
可以通过 Nginx 的 log_format 和自定义日志模块,结合请求路径、响应状态、文件类型等字段,将静态资源访问行为完整记录下来,实现轻量级但可回溯的流量归档。
静态资源(如 .js、.css、.png、.woff2 等)的访问需区别于动态接口。建议定义一个专用于静态资源的日志格式,包含时间、客户端 IP、URI、状态码、响应大小、Referer、User-Agent 和请求耗时:
http 块中添加:注意:使用竖线分隔便于后续解析;$request 包含方法和 URI,能准确识别是否为 GET /static/xxx;$request_time 可辅助分析性能瓶颈。
避免全站日志混杂,应只对明确的静态资源路径(如 /static/、/assets/、根目录下常见后缀)启用归档日志:
log_not_found off 可防止 404 请求污染归档数据;若需保留 404(例如监控缺失资源),可改为 on 并在日志中通过 $status 字段过滤。
归档日志持续写入会快速占用磁盘,需配置自动切割与压缩:
该配置每天切分、保留 90 天、自动压缩,并通知 Nginx 重开日志文件,避免服务中断。
原始日志是文本,直接 grep 或 awk 即可做基础统计;若需高频查询或可视化,可接入轻量方案:
无需复杂埋点或 SDK,Nginx 原生能力已足够支撑可观测性需求,关键是把“谁、何时、访问了哪个静态文件、结果如何”稳定留下。