Limitarea ratei de cereri stabilește un plafon asupra numărului de cereri pe care un client le poate face într-o fereastră de timp. O aplici la mai multe niveluri deoarece fiecare vede ceva diferit, și o indexezi după orice identifică abuzatorul.
Limitarea ratei de cereri stabilește un plafon asupra numărului de cereri pe care un client le poate face într-o fereastră de timp. O aplici la mai multe niveluri deoarece fiecare vede ceva diferit, și o indexezi după orice identifică abuzatorul.
429 Too Many Requests cu Retry-After pentru ca clienții să se retragă civilizat în loc să bombardeze.# Define a shared-memory zone keyed by client IP.
# rate=10r/s = the steady refill rate (token bucket).
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
server {
location /api/ {
# burst=20: allow a short spike of 20 queued requests
# nodelay: serve the burst immediately instead of spacing it out
limit_req zone=api burst=20 nodelay;
# Return 429 (not the default 503) so clients see a rate-limit signal
limit_req_status 429;
proxy_pass http://backend;
}
}
Aici fiecare IP se reîncarcă la 10 cereri/secundă, poate face rafale de până la 20, și orice depășire primește un 429.
Limitarea ratei este cea mai ieftină apărare întotdeauna activă împotriva inundațiilor de Layer 7, credential stuffing și web scrapers în derulare. Stratificarea ei (edge pentru volum, proxy pentru originea, aplicație pentru logica de afaceri) și indexarea corectă opresc abuzatorii în timp ce utilizatorii reali — și rafale legitime — trec netulburat. Stabilirea limitelor din baseline-uri reale este ceea ce o ține departe de a deveni o pană pe care ți-o cauzezi singur.