La directive Nginx limit_rate
vous permet de spécifier la vitesse à laquelle vous souhaitez évaluer les réponses limites, par exemple
location / {
if ($slow) {
limit_rate 4k;
}
}
La documentation Nginx est ici . (à partir de la documentation, vous verrez que votre backend peut prendre la décision et demander à Nginx de limiter le taux du client)
La façon dont vous obtenez cet $slow
ensemble de variables dépend de votre configuration. Le plus simple serait de le définir via la geo
cartographie:
geo $slow {
default 0;
1.2.3.0/24 1;
}
Le mappage "Geo" est une dépendance $slow
basée sur l'adresse IP du client. C'est 0 par défaut et 1 si une adresse IP client est dans le 1.2.3.0/24
sous-réseau. Voir la documentation Nginx sur "geo" ici
L'utilisation de "fail2ban" est une évolution raisonnable de toute cette solution. Vous pouvez utiliser «fail2ban» pour détecter automatiquement les activités inhabituelles et collecter les adresses IP pour Nginx, puis recharger Nginx afin qu'il relise les listes d'adresses IP qui doivent être ralenties et / ou bloquées.
Alexander Azarov
la source
La meilleure façon de traiter ce spammeur est d'installer et de configurer correctement fail2ban. Fail2ban recherchera les modèles dans les fichiers journaux et bloquera tous les ips qui spamment votre site. Bien sûr, vous devez le configurer pour rechercher le modèle approprié.
la source