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地址的目的。
本文主要内容:
封采集网站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地址的目的。
相关文章推荐
- Shell脚本自动记录登陆后 的IP地址和历史记录
- shell脚本备份nginx日志
- shell 脚本手动制作nginx电子书
- nginx封锁恶意IP,并且定时取消的两种脚本
- Nginx的系统启动服务脚本(shell)
- shell脚本检查统计nginx访问日志access.log
- 判断IP是否规范并添加或修改IP地址的shell脚本
- Shell脚本中通过正则表达式匹配IP地址
- shell 之 lnmp(nginx-1.0.5+php-fpm5.3.6+mysql)安装脚本
- php管理nginx虚拟主机shell脚本实例
- shell脚本一键安装LNMP(liunx+nginx+mysql+php)环境
- shell 自动重启nginx php shell脚本
- shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)
- CentOS6.8 x86_64bit shell脚本实现模拟nginx服务启动与关闭
- shell脚本联合PHP脚本采集网站的pv和alexa排名
- 使用shell脚本采集系统cpu、内存、磁盘、网络等信息
- 按照时间和登录ip地址来记录不同用户的历史命令的脚本——shell(1)
- php管理nginx虚拟主机shell脚本
- 采集oracle资源shell脚本例子