redis-ip-dynamic
一个用于 resty 的 Lua 库,可将远程 IP 动态存入 Redis
$ opm get qixiaobo/redis-ip-dynamic
实例
local redis_ip_dynamic = require "resty.redis-ip-dynamic"
local ip_dynamic_banner = redis_ip_dynamic:new({ host = "192.168.12.203" })
配置
host redis 使用的 IP,暂不支持域名,默认 127.0.0.1
port redis 使用的端口,默认 6379
password redis 的密码,默认为空
db_index redis 的数据库,默认 0
timeout 表示连接池中持有时间,默认 60 秒
pool_size 连接池大小,默认 100
prefix 表示限制的业务键前缀,默认 limit:,建议按照业务定义,比如 data
expire_time_in_second 表示过期时间,默认 1 小时,表示统计 IP 的间隔
black_list_threshold 表示 expire_time_in_second 出现的次数,即为黑名单触发,需要放入黑名单列表中,默认 500
expire_black_ip_in_second 表示黑名单默认封禁时间,默认 24 小时
原理
判断是否白名单,如果是则放行
如果不是白名单,校验是否黑名单,如果是黑名单则返回 true
以小时级别进行 IP 的调用次数累加,当达到阈值后,将该 IP 放入黑名单,并设置过期时间
以天级别进行调用次数统计,当达到阈值后,执行降级
POD 错误
嘿!上面的文档有一些编码错误,解释如下:
- 大约在第 66 行
-
=over 没有关闭 =back
作者
QiXiaobo(qixiaobo.nj@gmail.com)
许可证
2bsd
依赖项
版本
-
一个用于 resty 的 Lua 库,可将远程 IP 动态存入 Redis 2018-08-06 03:03:13
-
一个用于 resty 的 Lua 库,可将远程 IP 动态存入 Redis 2018-08-01 02:08:12
-
2018-07-25 04:58:36