Перейти к содержанию

dynamic-limit-req

# dynamic-limit-req: Модуль NGINX для динамической блокировки IP и периодического его снятия

## Установка на Debian/Ubuntu

Эти документы применимы к пакету APT **nginx-module-dynamic-limit-req**, предоставляемому репозиторием GetPageSpeed Extras.

1. Настройте репозиторий APT, как описано в [настройке репозитория APT](../apt-setup.md).
2. Установите модуль:

```bash
sudo apt-get update
sudo apt-get install nginx-module-dynamic-limit-req
Показать дистрибутивы и архитектуры
| Дистрибутив | Версия            | Компонент   | Архитектуры    |
|-------------|-------------------|-------------|-----------------|
| debian      | bookworm          | main        | amd64, arm64    |
| debian      | bookworm-mainline | main        | amd64, arm64    |
| debian      | trixie            | main        | amd64, arm64    |
| debian      | trixie-mainline   | main        | amd64, arm64    |
| ubuntu      | focal             | main        | amd64, arm64    |
| ubuntu      | focal-mainline    | main        | amd64, arm64    |
| ubuntu      | jammy             | main        | amd64, arm64    |
| ubuntu      | jammy-mainline    | main        | amd64, arm64    |
| ubuntu      | noble             | main        | amd64, arm64    |
| ubuntu      | noble-mainline    | main        | amd64, arm64    |

Введение

Модуль ngx_dynamic_limit_req_module используется для динамической блокировки IP и его периодического снятия.

Принцип

Модуль ngx_dynamic_limit_req_module используется для ограничения скорости обработки запросов по определенному ключу, в частности, для ограничения скорости обработки запросов, поступающих с одного IP-адреса. Ограничение осуществляется с помощью метода “протекающего ведра”.

О модуле

Этот модуль является расширением на основе ngx_http_limit_req_module.

Пожертвования

Разработчики неутомимо работают над улучшением и развитием ngx_dynamic_limit_req_module. Внедрение программного обеспечения в таком виде, как оно есть сегодня, потребовало много часов работы, но это очень времязатратный процесс без финансового вознаграждения. Если вам нравится использовать это программное обеспечение, пожалуйста, подумайте о том, чтобы пожертвовать разработчикам, чтобы они могли уделять больше времени внедрению улучшений.

Alipay:

Alipay

Расширение

Этот модуль может работать с RedisPushIptables, где уровень приложения сопоставляется с сетевым уровнем для перехвата. Хотя перехват на уровне сети сэкономит ресурсы, есть и недостатки. Предположим, что фильтруется только один конкретный интерфейс и другие интерфейсы не фильтруются, тогда те, которые не нужно фильтровать, тоже останутся недоступными. Хотя точный контроль невозможен на уровне сети или транспортном уровне, его можно точно контролировать на уровне приложения. Пользователям необходимо взвесить, какое решение более подходит для конкретного события в данный момент.

Api-count

Если вы хотите использовать функцию подсчета api, пожалуйста, используйте limithit-API_alerts. Поскольку не всем нужна эта функция, она не была объединена с основной веткой. Пользователи, которым не нужна эта функция, могут пропустить это описание.

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"

Этот модуль совместим со следующими версиями nginx:

Автор Гандалф zhibu1991@gmail.com ```