Nginx日志统计中,流量来源分析可通过以下方法实现:
关键字段解析
$http_referer:直接标识请求来源页面URL,可统计来源网站、搜索引擎等。$http_user_agent:分析客户端设备类型(如移动端/PC端)、浏览器(如Chrome/Edge)及版本,辅助判断流量来源特征。$remote_addr:统计直接访问的客户端IP,结合IP库可分析地理位置来源。$x_forwarded_for:当Nginx作为反向代理时,获取客户端真实IP,避免代理层IP干扰。命令行工具分析
awk -F'"' '{print $4}' access.log | sort | uniq -c | sort -nr | head # 提取Referer域名
awk '/2025-09-01/' access.log | awk -F'"' '{print $4}' | sort | uniq -c | sort -nr # 筛选特定日期来源
awk -F'"' '{print $4}' access.log | sort | uniq -c | sort -nr | head -n 10 # 统计前10大来源
工具辅助分析
进阶分析方向
$http_referer中的域名规则(如包含google.com归为搜索引擎),分类统计渠道流量。$request_method(如异常POST请求)、$status(如大量404)结合来源IP,识别恶意爬虫或攻击。注:需先在Nginx配置中自定义日志格式,确保包含$http_referer等字段,并定期清理日志以避免数据冗余。