一位站长提供的Nginx防止VPS采集方法

admin 0

作为采集狂魔,当然也要知道怎么屏蔽别人的采集

最直白的就是服务器上程序来采

所以一般只要封掉各大厂商服务器的ip 可以杜绝大部分爬虫 海外的就不说了

简简单单实战:

1.找出日志中访问最高的一些ip

2.判断是否vps服务器

3.nginx拉黑

4.验证效果

1.找出日志中访问最高的一些ip

查看nginx日志

awk '{print $1}' [这里是你的日志文件路径] | sort | uniq -c | sort -n -k 1 -r | head -n 20

这是我的结果 因为我已经屏蔽了 所以我这里都是没问题的爬虫

一位站长提供的Nginx防止VPS采集方法-第1张图片-新锐站长网

2.判断是否vps服务器

我随便举个例子吧

119.29.44.23 直接百度搜索 很明显的结果 是大厂的机器

一位站长提供的Nginx防止VPS采集方法-第2张图片-新锐站长网

3.nginx拉黑

这里选定一个路径 /data/nginx/asn/ 根据自己需求来

单ip拉黑:

直接在该路径下新建一个block_ip.conf

然后里面写入

deny 119.29.44.23;

在你的主要的nginx.conf(这个根据安装路径不同 就自己看了)里面加入

include /data/nginx/asn/*.conf;

然后nginx reload就可以了

ASN拉黑:

各大厂商的vps那么多怎么可能一个一个的单独拉黑

所以需要获取到所有的ip段进行统一拉黑

这里根据ip获取对应的asn码

我一般用ip.sb这个站 也可以用ipinfo.io

这种站有很多的

直接访问ip.sb/ip/119.29.44.23

一位站长提供的Nginx防止VPS采集方法-第3张图片-新锐站长网

这里可以看到对应的asn是 AS45090

然后获取对应asn的所有ip段

选一个文件夹 来下载 我这里举例 /data/nginx/asn/

链接里面可以替换对应的asn码

在服务器上执行命令

wget -P /data/nginx/asn/ --content-disposition "https://www.enjen.net/asn-blocklist/index.php?asn=AS45090&type=nginx&api=1"

下载完后 /data/nginx/asn/路径下就会有一个文件

AS45090_nginx.conf

因为会存在想要屏蔽多个asn 所以都下载到/data/nginx/asn/这个文件夹下就可以了

然后跟单ip拉黑一样

在你的主要的nginx.conf(这个根据安装路径不同 就自己看了)里面加入

include /data/nginx/asn/*.conf;

然后nginx reload就可以了

4.验证效果

nginx一般都有对应的error日志 路径因人而异了 这里就不说了

查看对应的error日志 如图

一位站长提供的Nginx防止VPS采集方法-第4张图片-新锐站长网很明显 已经把这些爬虫ip都给屏蔽了。

最后想说的

在采集与被采集的斗争当中,采集肯定是赢家。

只能说花费的成本是否值得去采集的问题,所以我们在处理被采集的情况里让采集方加大成本来采集,成本的增加会让采集方不得不考虑是不是需要换一个地方来采集,不可能完全杜绝被采集。

同样的道理 在防止被采集的过程中成本的增加也会让我们有所顾虑,所以这之间的博弈没有必要到穷途末路,屏蔽到60%的非正常爬虫已经是非常理想的情况了。

这只是运营的一个小方向,重点还是要在权重上下功夫。

原作者:4414论坛/不采集浑身难受

网友阿豪:采集别人可以,采集自己不行,这很棒~

网友天一:动态IP,你封不完的,只有宝塔防火墙可能有点作用

网友试试:看样子盾又一次战胜了矛(盾+1分)

标签: 日志 防采集 获取 爬虫 文件路径

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~