limit_req_zone в http задаёт ключ (часто $binary_remote_addr) и rate; limit_req в location применяет зону с burst и опционально nodelay.
Разбор
- Превышение →
503 (или кастомный код через limit_req_status).
burst сглаживает пики; без него жёсткая отсечка.
- За CDN нужен real IP, иначе лимит по edge IP.
- Комбинируйте с
limit_conn для одновременных соединений.
Пример
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
location /api/ {
limit_req zone=api burst=20 nodelay;
proxy_pass http://app;
}
Итог
limit_req защищает backend от бурстов и простого abuse.