Nginx来处理访问控制的方法有多种,实现的效果也有多种,访问IP段,访问内容限制,访问频率限制等。

1. Nginx来处理访问控制的方法有多种,实现的效果也有多种,访问IP段,访问内容限制,访问频率限制等。

2. 用Nginx+Lua+Redis来做访问限制主要是考虑到高并发环境下快速访问控制的需求。

1.检测是否被forbidden?=》是,forbidden是否到期:是,清除记录,返回200,正常访问;否,返回403;=》否,返回200,正常访问

3.检测访问频率是否超过限制,超过即添加forbidden记录,返回403

这是简单地方案,还可以添加点枝枝叶叶,访问禁止时间通过算法导入,每次凹曲线增加。

参考了下做法,redis存储方案只做简单地string存储就足够了。key分别是:

按照我们的逻辑方案,第二步是,检测是否forbidden,下面我们就检测block:127.0.0.1,如果搜索到数据,检测时间是否过期,未过期返回403,否则直接返回200:

最后呢,还要记得,把每次访问时间做一个自增长,user:127.0.0.1:time:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注