直接通过Nginx日志的User-Agent字段即可统计移动端访问占比,无需额外埋点;关键识别规则为包含Mobile、iPhone、iPad、Android等关键词且排除Windows/Mac OS X/Linux等桌面标识,再过滤爬虫和非移动类Android设备。

直接看 User-Agent 字段就能判断移动端访问占比,不需要额外埋点或前端脚本。
识别移动端请求的关键字段
Nginx 日志中,User-Agent 是唯一能区分设备类型的核心字段。移动端典型特征包括:
- 含
Mobile(绝大多数安卓、iOS 原生浏览器) - 含
iPhone、iPad、Android、UCBrowser、QQBrowser等关键词 - 不含
Windows、Mac OS X、Linux等桌面标识(但需注意部分平板 UA 可能同时含Mobile和Mac OS X)
快速统计移动端 PV 占比
用一行命令即可算出今天移动端请求占总请求数的比例:
# 统计今日总 PV 和移动端 PV
total=$(grep "$(date +%d/%b/%Y)" /var/log/nginx/access.log | wc -l)
mobile=$(grep "$(date +%d/%b/%Y)" /var/log/nginx/access.log | grep -i "mobile\|android\|iphone\|ipad" | wc -l)
echo "今日 PV: $total, 移动端 PV: $mobile, 占比: $(awk "BEGIN {printf \"%.1f\", $mobile*100/$total}")%"细化区分 iOS 与 Android
若需拆解系统分布,可分别提取:
- iOS 设备:
grep -i "iphone\|ipad" access.log | awk '{print $1}' | sort | uniq -c | sort -nr - Android 设备:
grep -i "android.*mobile" access.log | awk '{print $1}' | sort | uniq -c | sort -nr - 注意过滤掉 Android TV、Wear OS 等非手机类设备,避免干扰——加
mobile限定更准确
排除干扰项的实用技巧
某些 UA 字符串可能误判,建议在分析时主动排除:
- 微信内置浏览器:含
MicroMessenger且含Mobile→ 属于移动端,应保留 - 桌面版 QQ 浏览器:含
QQBrowser但无Mobile→ 应剔除 - 爬虫或监测工具(如
Go-http-client、curl):不属真实用户,可用grep -v "bot\|crawler\|http-client"过滤


















