La limitation de débit plafonne le nombre de requêtes qu'un client peut effectuer dans une fenêtre de temps. Vous l'appliquez à plusieurs couches car chacune voit quelque chose de différent, et vous la basez sur tout ce qui identifie l'abuseur.
La limitation de débit plafonne le nombre de requêtes qu'un client peut effectuer dans une fenêtre de temps. Vous l'appliquez à plusieurs couches car chacune voit quelque chose de différent, et vous la basez sur tout ce qui identifie l'abuseur.
429 Too Many Requests avec Retry-After pour que les clients se retirent poliment au lieu de marteler.# 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;
}
}
Ici chaque IP se recharge à 10 requêtes/seconde, peut faire une rafale jusqu'à 20, et tout ce qui dépasse reçoit un 429.
La limitation de débit est votre défense la moins chère, toujours active, contre les inondations de couche 7, le credential stuffing, et les scrapers qui s'échappent. La superposer (edge pour le volume, proxy pour l'origine, app pour la logique métier) et la baser correctement arrête les abuseurs tandis que les vrais utilisateurs — et les vraies rafales légitimes — passent sans encombre. Fixer les limites à partir de vraies baselines est ce qui l'empêche de devenir une panne que vous vous infligez vous-même.
Une bibliothèque de questions d'entretien IT avec des réponses détaillées — du Junior au Senior.
Faire un don