配置Nginx实现屏蔽爬虫IP
防止爬虫采集绝对是一个站长需要做的事;且不说站内资源被爬走,单是爬虫采集时消耗的服务器资源可能就够很多站长心疼了。
本文实现的方法比较原始,首先要找出爬虫的IP,可通过运行以下命令:
awk '{print $1}' /var/log/nginx/access.log |sort|uniq -c|soft -n
这条命令通过分析Nginx的访问日志,可以对IP的访问次数进行统计,并打印访问次数和IP地址;当一个IP频繁请求,要么是搜索引擎蜘蛛的访问,要么是爬虫;
接下来要做的是配置Nginx;Nginx的配置文件通常在 /etc/nginx/下,新建一个文件并命名为 blockip.conf,今后新增需要屏蔽的IP只需按照以下格式写入即可:
deny x.x.x.x;
x.x.x.x 为IP地址;
编辑 nginx.conf 文件,将下面这条语句加入 http 块中,将对所有网站生效;对单个网站生效应写入 server 块中:
include blockip.conf;
需要重启Nginx服务才能生效;
更多格式
屏蔽单个IP访问:
deny x.x.x.x;
允许单个IP访问:
allow x.x.x.x;
屏蔽所有IP访问:
deny all;
允许所有IP访问:
allow all;
屏蔽IP段:
deny x.x.x.x/8;
除了允许指定的IP访问外,其它全部拒绝:
allow x.x.x.1;
allow x.x.x.2;
deny all;