Ο περιορισμός ταχύτητας περιορίζει πόσα αιτήματα μπορεί να κάνει ένας πελάτης σε ένα χρονικό παράθυρο. Το εφαρμόζετε σε πολλαπλά επίπεδα επειδή κάθε επίπεδο βλέπει κάτι διαφορετικό, και το κλειδώνετε με ό,τι αναγνωρίζει τον κακοχρήστη.
Ο περιορισμός ταχύτητας περιορίζει πόσα αιτήματα μπορεί να κάνει ένας πελάτης σε ένα χρονικό παράθυρο. Το εφαρμόζετε σε πολλαπλά επίπεδα επειδή κάθε επίπεδο βλέπει κάτι διαφορετικό, και το κλειδώνετε με ό,τι αναγνωρίζει τον κακοχρήστη.
429 Too Many Requests με Retry-After ώστε οι πελάτες να υποχωρήσουν ευγενικά αντί να χτυπούν συνεχώς.# 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;
}
}
Εδώ κάθε IP ξανατροφοδοτείται με 10 αιτήματα/δευτερόλεπτο, μπορεί να εκραγεί έως 20, και ό,τι είναι πέρα από αυτό λαμβάνει 429.
Ο περιορισμός ταχύτητας είναι η φθηνότερη, πάντα ενεργή άμυνα σας κατά των πλημμυρών Layer 7, της συμπλήρωσης διαπιστευτηρίων και των εκτρεμάδων scrapers. Η στρωμάτωσή του (edge για τον όγκο, proxy για την αρχή, εφαρμογή για την επιχειρηματική λογική) και η σωστή κλειδώματα σταματούν τους κακοχρήστες ενώ οι πραγματικοί χρήστες — και οι νόμιμες εκρήξεις — περνούν ανεπηρέαστοι. Η ορθή ρύθμιση των ορίων από πραγματικά baselines είναι αυτό που το εμποδίζει να γίνει ένας πολυώνυμος της δικής σας κατασκευής.