背景:
最近小博客,经常流出流量超过上线,而且服务器临时文件经常爆满。后面查询日志,发现有一个来自重庆的爬虫【113.207.1.133】一直爬取本站的图片,不知道干什么用,本周都是技术图片,你们爬取过去干嘛呢?
临时解决方案
nginx中可通过写入配置文件的方法来达到一定的过滤IP作用,可使用deny来写。
deny的使用方法可用于前端服务器无防护设备的时候过滤一些异常IP,过滤的client ip会被禁止再次访问,起到一定的阻断作用。
1.设置整服务nginx禁止IP访问方法:
首先建立下面的配置文件放在nginx的conf目录下面,命名为blocksip.conf,并写入内容:
deny 192.168.1.1; #过滤单个IP
deny 192.168.1.0/24; #过滤整个地址段
deny all; #过滤所有IP
allow 192.168.1.1; #与deny all;组合是指除192.168.1.1外其他都过滤
保存一下。
在nginx的配置文件nginx.conf中加入:
http{
include blocksip.conf;
}
然后重新重载nginx配置;
2.可能你服务器存放多个网站,
我们只需要相关网站禁止该IP,那我们就可以单独屏闭某一个网站IP:在server"{}",在这个大括号内加入
- deny IP地址是限制某IP地址访问;
- allow IP地址是只允许某IP地址访问;
#屏蔽单个IP的命令是
deny 192.168.1.1
deny 192.168.2.1
#封整个段即从192.168.1.1到192.168.1.254的命令
deny 192.168.1.1/8
#封IP段即从192.168.1.1到192.168.1.254的命令
deny 192.168.1.1/16
#封IP段即从192.168.1.1到192.168.1.254的命令是
deny 192.168.1.1/24
最终解决方案
后续增加超过一定频率,增加一个校验码让手工输入,防止爬虫高频率爬取本站,导致影响正常的访问请求