dynamic-limit-req: module NGINX pour verrouiller dynamiquement une IP et la libérer périodiquement
Installation
Vous pouvez installer ce module dans toute distribution basée sur RHEL, y compris, mais sans s'y limiter :
- RedHat Enterprise Linux 7, 8, 9 et 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 et Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-dynamic-limit-req
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-dynamic-limit-req
Activez le module en ajoutant ce qui suit en haut de /etc/nginx/nginx.conf :
load_module modules/ngx_http_dynamic_limit_req_module.so;
Ce document décrit nginx-module-dynamic-limit-req v1.9.3 publié le 29 janvier 2021.
Introduction
Le module ngx_dynamic_limit_req_module est utilisé pour verrouiller dynamiquement une IP et la libérer périodiquement.
principe
Le module ngx_dynamic_limit_req_module est utilisé pour limiter le taux de traitement des requêtes par une clé définie, en particulier, le taux de traitement des requêtes provenant d'une seule adresse IP. La limitation est effectuée en utilisant la méthode du "seau qui fuit".
À propos
Ce module est une extension basée sur ngx_http_limit_req_module.
Faire un don
Les développeurs travaillent sans relâche pour améliorer et développer ngx_dynamic_limit_req_module. De nombreuses heures ont été consacrées à fournir le logiciel tel qu'il est aujourd'hui, mais cela représente un processus extrêmement chronophage sans récompense financière. Si vous appréciez l'utilisation du logiciel, veuillez envisager de faire un don aux développeurs, afin qu'ils puissent passer plus de temps à mettre en œuvre des améliorations.
### Alipay :

Étendre
Ce module peut fonctionner avec RedisPushIptables, la couche application correspond ensuite à la couche réseau pour intercepter. Bien que l'interception au niveau de la couche réseau économise des ressources, il existe également des inconvénients. En supposant qu'une seule interface spécifique soit filtrée et qu'aucune autre interface ne soit filtrée, celles qui n'ont pas besoin d'être filtrées seront également inaccessibles. Bien qu'un contrôle précis ne soit pas possible au niveau de la couche réseau ou de la couche transport, il peut être contrôlé de manière précise au niveau de la couche application. Les utilisateurs doivent peser quelle solution est la plus adaptée à l'événement au moment donné.
Api-count
Si vous souhaitez utiliser la fonction de comptage API, veuillez utiliser limithit-API_alerts. Comme tout le monde n'a pas besoin de cette fonctionnalité, elle n'est donc pas fusionnée dans la branche principale. Les utilisateurs qui n'ont pas besoin de cette fonctionnalité peuvent ignorer cette description.
git clone https://github.com/limithit/ngx_dynamic_limit_req_module.git
cd ngx_dynamic_limit_req_module
git checkout limithit-API_alerts
root@debian:~# redis-cli
127.0.0.1:6379> SELECT 3
127.0.0.1:6379[3]> scan 0 match *12/Dec/2018* count 10000
127.0.0.1:6379[3]> scan 0 match *PV count 10000
1) "0"
2) 1) "[13/Dec/2018]PV"
2) "[12/Dec/2018]PV"
127.0.0.1:6379[3]> get [12/Dec/2018]PV
"9144"
127.0.0.1:6379[3]> get [13/Dec/2018]PV
"8066"
127.0.0.1:6379[3]> get [13/Dec/2018]UV
"214"
Ce module est compatible avec les versions suivantes de nginx :
Auteur Gandalf zhibu1991@gmail.com
GitHub
Vous pouvez trouver des conseils de configuration supplémentaires et de la documentation pour ce module dans le dépôt GitHub pour nginx-module-dynamic-limit-req.