如题: 如果在NGINX使用lua在Location中做间件转发,会不会扛不住?
这个过程有点Redis中间件的服务降级的感觉.
设计思路是这样的:
一台负载机,10台web机每台限制1W长连接.lua下载负载机中.
- 首先在location / 中这是lua的路由匹配,将所有的请求调用Lua的脚本来做处理.
- 在lua中做IP判断,判断是否在黑名单中,同时判断该IP的请求频率,如果频率过快加入黑名单同时限制几秒.
- 如果通过以上逻辑,则将该连接转发给10台机器中的任意一台,如果10台机器全部占满,则给客户返回超时提醒,同时在Redis中记录下该用户的IP地址,用来以后做连接量统计,好考虑要不要加机器.
我想问下上面的第3步,因为所有的请求都要走这里转发,会不会扛不住?
有没更好的方案?主要想实现的对请求做限流,对请求做转发,满载之后的无法连接的用户要做记录.