在站点遇到攻击且无明显攻击特征,造成站点访问慢,nginx不断返回502等错误时,可利用nginx+lua+redis实现在指定的时间段内,若单IP的请求量达到指定的数量后对该IP进行封禁,nginx返回403禁止访问。利用redis的expire命令设置封禁IP的过期时间达到在指定的封禁时间后实行自动解封的目的。
一、安装环境:
CentOS x64 release 6.4(Final)
Nginx-1.4.1
Redis 2.6.14
LuaJIT-2.0.2
二、安装步骤:
1、安装LuaJIT-2.0.2
wget http://luajit.org/download/LuaJIT-2.0.2.tar.gz
tar -xzvf LuaJIT-2.0.2.tar.gz
cd LuaJIT-2.0.2
make && make install
注:64位系统安装完成后或许还需要将/usr/local/lib/libluajit-5.1.so.2建立软连接到/lib64/ /libluajit-5.1.so.2,否则在后面nginx启动时会提示找不到依赖库。
2、安装Redis 2.6.14
w