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

limit-traffic-rate: Ограничение скорости NGINX по заданным переменным

Установка

Вы можете установить этот модуль в любой дистрибутив на базе RHEL, включая, но не ограничиваясь:

  • RedHat Enterprise Linux 7, 8, 9 и 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 и Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-limit-traffic-rate
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-limit-traffic-rate

Включите модуль, добавив следующее в верхнюю часть файла /etc/nginx/nginx.conf:

load_module modules/ngx_http_limit_traffic_rate_filter_module.so;

Этот документ описывает nginx-module-limit-traffic-rate v1.0.0, выпущенный 30 декабря 2024 года.


Примечания

Директива Nginx limit_rate может ограничивать скорость соединения, а limit_conn может ограничивать количество соединений по заданной переменной. Если клиент — это браузер, он открывает только одно соединение с сервером. Скорость будет ограничена значением limit_rate, если только клиент не является многопоточным инструментом для загрузки.

ngx_http_limit_traffic_ratefilter_module предоставляет метод для ограничения общей скорости загрузки по IP-адресу клиента или URL загрузки, даже если существует несколько соединений. Условие ограничения может быть определено следующей директивой.

Чтобы установить, скомпилируйте nginx с этой опцией ./configure:

--add-module=path/to/this/directory

Модуль limit_traffic_rate должен использовать общий пул памяти.

Синтаксис директивы такой же, как у limit_zone

http {
    #limit_traffic_rate_zone   rate $request_uri 32m;
    limit_traffic_rate_zone   rate $remote_addr 32m;

    server {
        location /download/ {
            limit_traffic_rate  rate 20k;
        }
    }
}

GitHub

Вы можете найти дополнительные советы по конфигурации и документацию для этого модуля в репозитории GitHub для nginx-module-limit-traffic-rate.