本文介绍下,在nginx环境中,使用shell脚本封锁那些采集自己网站内容的IP地址,不错的想法,实现起来也简单,有需要的朋友参考下。
本文主要内容:
封采集网站IP的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 \
| 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
tail -n50000 /data/logs/xxx.log \
| 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 &