limit_traffic_rate

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

Синтаксисlimit_traffic_rate variable rate;
По умолчаниюnone
Контекстhttp, server, location
Аргументы2

Описание

Директива limit_traffic_rate используется для контроля общей скорости загрузки клиентов, особенно полезна для предотвращения чрезмерного использования полосы пропускания. Эта директива взаимодействует с limit_traffic_rate_zone, которая определяет ограничение скорости, задавая переменную (например, $remote_addr или $request_uri) и объём разделяемой памяти для отслеживания подключений.

После установки директивы limit_traffic_rate в контексте, таком как http, server или location, она применяет ограничение к объёму данных, которые клиент может скачать в любой момент времени. Она рассчитывает разрешённую скорость скачивания, распределяя заданный общий лимит по всем активным соединениям. Используемая формула обеспечивает, что при открытии множества соединений ограничение скорости остаётся эффективным, обеспечивая справедливое использование между разными клиентами и соединениями.

Для эффективной реализации ограничения скорости разделяемая область памяти должна быть определена заранее с помощью limit_traffic_rate_zone, выделив необходимый объём памяти для отслеживания запросов клиентов. Этот подход позволяет limit_traffic_rate поддерживать стабильное ограничение даже при динамических колебаниях полосы пропускания при множестве клиентских запросов.

Пример конфига

http {
    limit_traffic_rate_zone rate $remote_addr 32m;
    
    server {
        location /download/ {
            limit_traffic_rate 20k;
        }
    }
}

Убедитесь, что зона разделяемой памяти определена перед использованием директивы.

Скорость должна быть указана в допустимой единице измерения (например, k, m), чтобы избежать ошибок конфигурации.

Использование слишком низкого лимита может привести к значительным задержкам при загрузке у пользователя.

← Ко всем директивам