您的位置:首页 > 运维架构 > Shell

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

2014-06-18 22:05 232 查看
本文介绍下,在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
保存,退出,运行

#/data/sh/blockip.sh &

如此之后,即可让采集的IP无法访问,达到了封锁恶意采集者IP地址的目的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: