|
' _- ?2 [ F u3 V. r6 d6 K 这次诡异的经历时间长达十多天,期间明月网站服务器的负载多次飙升到极限,每次都是强制停止 php-fpm 进程来缓解,可以说严重影响了博客网站的正常运行,刚开始明月还以为是又碰到个“手欠”拿我博客来练手 CC/DDos 攻击的,但是随后几天的日志分析结果外加明月多年以来被 CC/DDos 攻击经验判断排除了被人攻击的可能性,原因嘛?很简单,你见过有人用百度蜘蛛爬虫IP 来实施 CC/DDos 攻击吗?反正,明月是没有见过!
( t4 v. w8 d& y& N4 ]& P2 i9 f6 C3 X 刚开始明月也是不相信会是百度蜘蛛爬虫造成的这个结果,但是在把几天的 Nginx 日志里的 IP 进行了筛选后得出的结果是这些爬虫的 IP 几乎都是真实的百度蜘蛛爬虫IP,并不是简单的 UA 仿冒百度蜘蛛爬虫。
, d2 w0 v* @; r' W 我去,这个结果真心让人很郁闷呀:我竟然被别人梦寐以求的百度蜘蛛爬虫给围殴了! 6 U _4 E! ?1 Z; ~+ X6 j2 O
俗话说“事出反常必有妖”,本着这个思路明月开始了为期一周的排查工作,因为【不熬夜,是最顶级的自律】和【熬夜如何改变了我们的身体】这两篇文章的缘故明月正在戒掉“熬夜”这个习惯(希望像明月戒烟一样能成功哦!)所以这次排查工作效率很低,都是抽空进行的,需要多次随机的抽查这些蜘蛛爬虫请求的 User Agaent、IP、链接、主机域名等等数据,直到今天终于让明月给找到问题出在哪里了? 3 X2 q3 L" u8 n" {) _4 d* J
造成百度蜘蛛爬虫这次大批量、持续性的抓取一个最主要的原因是百度站长平台的“抓取频次”过高造成的,查看百度站长平台站点抓取频次如下图:
% g9 G9 c2 _4 ] 可以看到是 21912 次/天,可以想象这个频次给网站服务器带来了多大的压力呀!一直到最后明月才发现这次是两个站点的高频次抓取一起汇总到我一个服务器上来了,上面这个 21912 次/天是 blog.ymanz.com 这个域名站点的抓取频次,还有一个抓取频次就是我博客的域名 imydl.com 的抓取频次是 17982 次/天。
6 U- P! T9 }: a6 l7 y0 v 两个站点相叠加那就是每天接近 40000 次的抓取频率,平均到每分钟就要接待近 30 次的请求,无语了!
; M1 V. A' o K5 C* W) H 这负载给拉的是满满的,要知道明月的服务器配置可是早期阿里云 ECS 最低配置:1H1G 哦我这小驴车怎么经得起这么折腾,所以明月发现问题后赶紧解决,首先是取消掉 blog.ymanz.com 的解析(这是明月博客早期的域名,目前看来只能是放弃解析跳转了),其次调低百度站长平台里 blog.ymanz.com 和 imydl.com 站点的抓取频次每天上限: 1 s% P8 i# ], \
因为 blog.ymanz.com 是个废弃域名了,所以直接调整到最低值。经过上述操作后,随后的几个小时百度蜘蛛爬虫来访的频率降下来了,服务器的负载也难得的恢复如初:
* w V- p. H7 @' } 看到这久违的负载值,这几天的忙活没有白费,这次经历下来让明月对于运维这个工作的认识又加深了不少,这是一个随时都要面对挑战,并且,当面临挑战的时候要平心静气的分析、整理、思考后解决问题并制定出详细的预防方案并实施,如果您是一个网站运营者并不是很懂服务器运维,那么明月建议您可以考虑一下运维外包服务,比如明月自己就有提供这种有偿服务哦 % A2 x* X6 j. O+ e0 a G
* T1 J0 d \$ R K+ t( W$ z" B6 n# k( W9 F9 a. Q$ u
; O I, U! x$ J$ A3 \6 J" ~- @: ?& Y$ M0 p0 u
|