rate_limit_prefix
为 NGINX 中基于 Redis 的限速使用的限速键设置前缀。
Redis backed rate limit module for Nginx
·
httpserverlocation
语法rate_limit_prefix prefix_string;
默认值none
上下文http, server, location
参数1
说明
当后端为 Redis 时,rate_limit_prefix 指令会向用于限速的键添加指定的前缀。这对于在同一 Redis 实例中对不同用例或应用程序的限速键进行组织和区分很有用。在处理客户端请求时,该指令会确保用于限速的完整键由指定前缀与基于请求上下文(例如 IP 地址或 API 密钥)动态生成的键组合而成。
当在 server 或 location 块中配置时,前缀会与请求特定的键连接,使用下划线作为分隔符。这种连接确保不同限速上下文的键是唯一的,从而防止冲突。如果未定义前缀,则限速键仅为生成的上下文特定键。
在实践中,使用前缀可以帮助在不发生冲突的情况下实现多个限速规则,并且便于在 Redis 中监控或管理限速,因为键可根据其前缀轻松识别。例如,你可以为不同的 API 端点配置不同的前缀,以便轻松区分它们的使用情况和限速。
配置示例
location = /api {
rate_limit_prefix api;
rate_limit $limit_key requests=10 period=1m burst=5;
rate_limit_pass redis;
}⚠
确保前缀和键的组合长度不超过 Redis 的键大小限制(65535 字节)。
⚠
在不同上下文中使用相似的前缀时要小心,因为这可能在监控速率限制统计时造成混淆。
⚠
如果在 location 块中设置了 rate_limit_prefix,请确保它不会与处理相同键的其他 locations 或上下文冲突。