cookie_limit_req
通过控制与特定 cookie 相关的请求速率,限制恶意 IP 伪造的 cookie 数量。
NGINX module to limit the number of malicious ip forged cookies
·
httpserverlocationif in location
语法cookie_limit_req zone=name [burst=number] [nodelay | delay=number];
默认值none
上下文http, server, location, if in location
参数1-3
说明
指令 cookie_limit_req 是 NGINX 模块的一部分,旨在通过专门针对 cookie 来减轻恶意请求可能造成的滥用。当应用此指令时,它指定一个先前定义的共享内存区域(通过 cookie_limit_req_zone),并允许根据 cookie 信息控制可处理的请求数量。该指令通过施加定义的请求速率并维持一个可无延迟处理的最大突发请求容量,来限制请求涌入。
参数 zone 指定共享内存区域,该区域已用诸如请求速率和突发大小等参数定义。额外的选项允许进一步微调 NGINX 处理超额请求的方式:burst 参数定义在发生延迟或终止之前,允许超过指定速率的最大请求数;nodelay 设置则允许对高达该突发限制的请求立即处理,而不是将它们排队。此类控制对于在维护服务器性能的同时应对来自相同 IP 或具有相同 cookie 的过量请求滥用的安全管理至关重要。
对延迟或超额请求的行为也可以通过 cookie_limit_req_log_level 和 cookie_limit_req_status 指令进行细化,前者决定这些事件的日志级别,后者决定被拒绝请求返回的状态码。总体而言,cookie_limit_req 指令对于有效实施与 cookie 相关的速率限制至关重要,有助于性能管理并防护某些类型的攻击。
配置示例
cookie_limit_req zone=two burst=30 nodelay;
⚠
在使用此指令之前,确保已定义共享内存区域。
⚠
如果未正确管理,较高的突发限制可能导致性能问题。
⚠
如果请求持续高于速率限制,使用 nodelay 可能会使服务器不堪重负。