1. 进入nginx的日志目录 如 access.log
2.运行下面的命令把spider的ip抓取输出到iplog.txt中
cat access.
log
|
grep
-i
"YisouSpider"
| awk
'{print $1,","}'
> iplog.txt
3. 把iplog.txt格式成以下格式,多个ip请换行,封禁所有的关于蜘蛛的ip
deny 1.1.1.1;
deny 1.1.1.1;
3.1 php格式化
$ips = file_get_contents('iplog.txt'); $ips = str_replace(' ','', $ips); $ips = str_replace("\n",'', $ips); $ips_arr = array_unique(explode(',',$ips)); $ips_all = ""; foreach ($ips_arr as $v) { if (!empty($v)) { $ips_all .= "deny ".$v.";\n"; } } file_put_contents('ban_ips.conf', $ips_all);
3.2 把ban_ips.conf放到 nginx配置目录 如/etc/nginx/ban_ips.conf
4. 在nginx.conf配置文件中的http{ 加上 }
http {
#最后一行加入
include /etc/nginx/ban_ips.conf;
}
5.执行下面命令
sudo chmod 777 /etc/nginx/ban_ips.conf
sudo service nginx restart