Apache中设置屏蔽IP地址和URL网址来禁止采集

只要是建有数据量比较多的网站,几乎不可避免采集的情况,这方面我们已经有多年的对付经验,主要是通过分析Web访问日志,找到采集的规律,相应来设置屏蔽IP地址或者URL网址来解决。

国内的Linux服务器上我们都安装了Squid作为Apache的前端缓存,所以我们遇到采集的情况就分析Squid的日志,在squid.conf文件中进行设置屏蔽,然后重启Squid服务就可以。

近期租用的国外Linux服务器上默认是没有Squid的,我们也就只用了Apache作为Web服务器,修改了httpd.conf来让Apache的日志文件显示更详细的虚拟主机域名、User-Agent等信息,以便遇到采集的情况可以分析。

前一阵子遇到来自固定某个或者某段IP的采集,我们就修改httpd.conf文件,在影响的主机设置中添加这样的代码:

Order Deny,Allow
Deny from 125.115.2.85
Deny from 91.228.196.234

然后重启Apache服务就可以。

这两天遇到比较狡猾的采集,平均每10秒采集一次,IP地址分散到10多个,日志中的User-Agent也是各种都有,这样仅仅靠屏蔽IP还无法解决,但通过分析发现采集是顺着某种页面的很多分页顺序进行的,例如:http://www.example.com/path/file?page=12345 ,这个12345在不断增加中,因此只要屏蔽对http://www.example.com/path/file 这类URL的访问,就可以全部屏蔽这些采集。

设置可修改httpd.conf,也可以修改具体目录下的.htaccess文件,添加rewrite规则如下:

RewriteCond %{HTTP_HOST}  ^can\.bizdirlib\.com(.*)$
RewriteCond %{REQUEST_URI} ^\/business_directory\/S\_\%26\_J(.*)$
RewriteRule .* - [F,L]

这样就屏蔽了can.bizdirlib.com站点下/business_directory/S_%26_J 这一类URL。

來源:jamesqi.com

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论