nginx中shell脚本封锁采集IP地址

发布时间:2020-01-12编辑:脚本学堂
本文介绍下,在nginx环境中,使用shell脚本封锁那些采集自己网站内容的IP地址,不错的想法,实现起来也简单,有需要的朋友参考下。

本文主要内容:
封采集网站IP的shell/ target=_blank class=infotextkey>shell脚本

实现思路:
分析nginx日志,比如分析最后50000条记录,如果同一个IP访问了1000以上,基本可以肯定这个是有人在采集,当然封之前要判断好,不要连搜索引擎蜘蛛的IP都封了,一定要谨慎。

方法:
第一步:
nginx.conf 最后加上
 

复制代码 代码示例:
include  vhost/blockip.conf; (vhost/blockip.conf的路径按照您的真实路径,自己设定)

第二步: 写分析nginx日志的shell脚本
vi /data/sh/blockip.sh

脚本内容:
 

复制代码 代码示例:
#!/bin/bash
tail -n50000 /data/logs/xxx.log
|linuxjishu/13830.html target=_blank class=infotextkey>awk '{print $1,$12}'
|grep -i -v -E "google|yahoo|baidu|msnbot|FeedSky|sogou|360|bing|soso"
|awk '{print $1}'|sort|uniq -c|sort -rn
|awk '{if($1>1000)print "deny "$2";"}' > /data/blockip.conf
/root/nginx_reload

保存,退出,运行
#/data/sh/blockip.sh &

如此之后,即可让采集的IP无法访问,达到了封锁恶意采集者IP地址的目的。
 

您可能感兴趣的文章:

nginx下禁止直接以IP访问的方法
两个nginx小技巧(禁止以ip方式访问、禁止列出目录)
nginx设置目录保护、IP访问限制、防盗链、下载限速及设置多域名等的方法
设置nginx禁止通过IP访问服务器的方法
nginx通过限制IP请求数以防止CC攻击的方法介绍
nginx禁止IP访问及未绑定的域名跳转的配置方法
nginx屏蔽ip直接访问的方法