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
等字段,并定期清理日志以避免數據冗余。