如果在NGINX使用lua在Location中做间件转发,会不会扛不住?

码强
  • 26

如题: 如果在NGINX使用lua在Location中做间件转发,会不会扛不住?

这个过程有点Redis中间件的服务降级的感觉.

设计思路是这样的:

一台负载机,10台web机每台限制1W长连接.lua下载负载机中.

  1. 首先在location / 中这是lua的路由匹配,将所有的请求调用Lua的脚本来做处理.
  2. 在lua中做IP判断,判断是否在黑名单中,同时判断该IP的请求频率,如果频率过快加入黑名单同时限制几秒.
  3. 如果通过以上逻辑,则将该连接转发给10台机器中的任意一台,如果10台机器全部占满,则给客户返回超时提醒,同时在Redis中记录下该用户的IP地址,用来以后做连接量统计,好考虑要不要加机器.

我想问下上面的第3步,因为所有的请求都要走这里转发,会不会扛不住?

有没更好的方案?主要想实现的对请求做限流,对请求做转发,满载之后的无法连接的用户要做记录.

回复
阅读 1.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏