API 被刷,先限流。按客户端地址给每个调用方设速率上限,恶意刷子自然熄火。
防护配置
limit_req_zone $binary_remote_addr zone=api:10m rate=5r/s;
location /api/ {
limit_req zone=api burst=10 nodelay;
limit_req_status 429;
}
要点速览
- rate 是稳态速率,burst 允许短时突发。
- 返回 429 让客户端知道该退避。
- 对登录等关键接口限更严,防撞库。
速率限制是 API 防刷的第一道墙:每人一份额度,谁超谁等着。