OpenResty
用 Nginx 实现访问限速功能需要几个功能模块:Lua 模块和 Redis 模块。可以安装 Nginx 并安装模块,为了简单直接使用 OpenResty,内置了所有常规模块。
官方模块支持对单机版 Redis 的访问,可以直接参考文章:
支持 Redis 集群
官方没有支持 Redis 集群的模块,但是在 GitHub 上有一些项目支持集群操作:
操作步骤:
- 克隆项目到本地。
- 编译
c文件为so文件:gcc redis_slot.c -fPIC -shared -o redis_slot.so - 把
lua文件和so文件放在 OpenResty 安装目录下的lualib。 - 在
nginx.confhttp 模块添加:lua_shared_dict redis_cluster_slot_locks 100k;