不少站长会遇到一个迷惑现象:宝塔统计显示日访问数十万 IP,第三方 JS 统计却仅有百余真实访客,服务器 CPU、内存长期跑至 90% 以上,网站卡顿、500 报错频发,很多人第一反应是升级服务器配置,但这往往不是硬件性能瓶颈,而是海量恶意爬虫在消耗资源。

近期我们处理一例客户环境:4 核 8G 云服务器,Linux+Apache+PHP7.3,宝塔报表显示百万级访问,百度统计仅百级真实 IP,服务器长期高负载。通过解析 Apache 访问日志找到根源:大量海外 SEO 爬虫(SemrushBot、AhrefsBot、Amazonbot 等)持续访问站点搜索页、简历模块。
简历模块存在海量参数组合,爬虫自动拼接地区、行业、专业、分页生成无穷多 URL;搜索伪静态页面每一次请求都会触发数据库查询。这类爬虫不执行 JS 脚本,百度统计无法捕获,但 Apache 会完整记录每一次请求,造成统计数据巨大偏差。同时部分爬虫伪装成 Chrome、Safari 正常浏览器 UA,单纯依靠 UA 黑名单无法全部拦截。robots.txt 仅对守规矩搜索引擎生效,对商业采集爬虫完全无效。
排查修复关键点:
- 第一,不要盲目升级配置,优先分析原始访问日志,区分真实用户与爬虫请求;
- 第二,
.htaccess拦截规则必须放在伪静态规则之前,避免重写冲突误伤正常内页; - 第三,针对搜索路径做直接拦截,简历模块采用防火墙 URL 粒度限流,而不是一刀切全部封禁;
- 第四,UA 黑名单拦截知名采集爬虫,同时配合 IP 访问频率限制,抵御伪装浏览器的分布式爬虫。
完成规则配置之后,服务器负载迅速回落至 30% 以内,网站访问恢复流畅,宝塔统计访问量回落,与百度统计真实访客数据趋于对齐。
理响网络运维提示:B2B 行业程序模块多、动态查询重,公网暴露的站点无时无刻面临各类采集爬虫。遇到负载异常,优先排查访问日志,区分真实流量与无效爬虫流量,精准拦截比单纯升级硬件更高效。