पाठ 27 / 32
Rate Limiting
per-IP या per-user limits और time windows के साथ @fastify/rate-limit से Fastify API सुरक्षित करें।
Rate limit क्यों?
Rate limiting abuse को prevent करता है, DDoS से protect करता है, और clients के बीच fair resource allocation सुनिश्चित करता है।
@fastify/rate-limit उपयोग करना
Built-in protection के लिए Fastify rate-limit plugin उपयोग करें।
import rateLimit from '@fastify/rate-limit';
await fastify.register(rateLimit, {
max: 100, // requests
timeWindow: '15 minutes',
allowList: ['127.0.0.1'], // don't limit localhost
keyGenerator: (req) => req.user?.id || req.ip, // per user if authenticated, else per IP
});