在网站运营和维护过程中,经常会遇到有恶意IP攻击或者采集我们的网站,严重的甚至会造成云服务器负载过高,使我们的网站访问卡顿。此时我们需要对一些恶意的IP地址或是一些IP段进行封锁拉黑,使其不能访问网站。 如果你的云服务器的网站运行环境是由nginx搭建的,如果你也使用了宝塔面板进行服务器管理,那么下面分享的Nginx+宝塔面板批量屏蔽IP方法对你是有用的。
前面的文章中其实我们已经分享过>>宝塔面板屏蔽恶意IP的教程,不过只能一条一条的屏蔽,今天分享的更侧重于Nginx批量设置,帮助我们云服务器屏蔽恶意ip。前面的文章中有如何获取恶意IP的方法,大家可以对照两篇文章进行设置。
创建blocksip.conf 文件
在 nginx 的安装目录中,找到 conf 文件夹,并在其文件夹中创建 blocksip.conf 文件
编辑 blocksip.conf 文件,并加入以下代码
deny 0.0.0.0;
其中的0.0.0.0就是我们要屏蔽的那些恶意IP。
编辑 conf 文件夹下的 nginx.conf 文件
加入以下代码
include blocksip.conf;
然后重启 nginx 即可。
这种方法的好处是可以批量屏蔽IP,虽然不如官方防火墙的导入规则好用,但是优点是免费,比较适合自己建站的中小站长,让我们的网站可以屏蔽恶意IP的骚扰。能省则省嘛,有多余的资金可以考虑升级一个更好的云服务,不香吗?哈哈!
屏蔽ip的配置文件既可以屏蔽单个ip,也可以屏蔽ip段,或者只允许某个ip或者某个ip段访问。
# 屏蔽单个ip访问
deny IP;
# 允许单个ip访问
allow IP;
# 屏蔽所有ip访问
deny all;
# 允许所有ip访问
allow all;
#屏蔽整个段即从123.0.0.1到123.255.255.254访问的命令
deny 123.0.0.0/8
#屏蔽IP段即从123.45.0.1到123.45.255.254访问的命令
deny 124.45.0.0/16
#屏蔽IP段即从123.45.6.1到123.45.6.254访问的命令
deny 123.45.6.0/24
如果你想除了几个IP外,其他全部拒绝,那需要你在blockip.conf中这样写
allow 1.1.1.1;
allow 1.1.1.2;
deny all;
单独网站屏蔽IP的方法,把include blocksip.conf; 放到网址对应的在server{}语句块,
所有网站屏蔽IP的方法,把include blocksip.conf; 放到http {}语句块。
yum