Wenn Sie den beleidigenden Benutzer dazu verleiten möchten, zu glauben, dass er von Ihnen immer noch unbemerkt bleibt, können Sie das Anforderungslimitmodul von nginx ( http://wiki.nginx.org/HttpLimitReqModule ) verwenden.
Definieren Sie zunächst eine Anforderungslimitzone:
http {
limit_req_zone $binary_remote_addr zone=spammers:1m rate=30r/m;
}
Diese Zone verwendet die IP-Adresse des Täters, um Anfragen zu identifizieren und auf 30 pro Minute (1/2 Sek.) Zu beschränken. Bitte beachten Sie, dass die Speichergröße der Zone auf 1 MiB festgelegt ist, was bedeutet, dass 1 MiB / 64 Byte pro Anforderungs-Bucket = 16384 Spammer-Adressen verarbeitet werden können (was in unserem Fall möglicherweise ein Overkill ist). Passen Sie sie gegebenenfalls an.
Als nächstes definieren wir die Richtlinie, die den Täter tatsächlich durch den Begrenzer leitet, indem wir einen (leider bösen) Fall verwenden:
location / {
if ($remote_addr = 1.2.3.4) {
limit_req zone=spammer burst=5;
}
}
Sie können die Früchte Ihrer Arbeit im Zugriffsprotokoll des Servers sehen.
Beachten Sie, dass dieser Hack nicht gut skaliert werden kann, da Sie die Konfigurationsdatei jedes Mal aktualisieren müssen, wenn der Täter die IP ändert (geschweige denn mehr IPs enthalten, was in bestimmten Fällen mehr bedeutet), aber es funktioniert.