limit_rate

Директива `limit_rate` ограничивает пропускную способность для ответа, отправляемого клиенту.

Синтаксисlimit_rate rate;
По умолчаниюnone
Контекстhttp, server, location, if in location
Аргументы1

Описание

Директива limit_rate позволяет задать ограничение скорости передачи для клиентов, получающих ответ. Это особенно полезно для предотвращения ситуации, когда один пользователь потребляет чрезмерные ресурсы сервера или пропускную способность, что в противном случае могло бы ухудшить производительность для других пользователей. Директива принимает один аргумент, который задаёт максимальную скорость передачи в байтах в секунду. Вы можете указать суффикс, например 'k' для килобайтов или 'm' для мегабайтов, чтобы упростить настройку.

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

Если текущая скорость загрузки превышает заданное значение limit_rate, NGINX приостановит передачу данных, чтобы соблюсти это ограничение, что приведёт к более стабильной работе для всех пользователей, гарантируя, что ни один клиент не сможет монополизировать ресурсы сервера.

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

location /downloads {
    limit_rate 100k;
}

Использование limit_rate внутри директивы if может привести к непредсказуемому поведению из-за сложности обработки конфигурации NGINX.

Ограничение скорости применяется только к передаваемым данным; оно не влияет на обработку входящих запросов.

Чрезмерно строгие лимиты скорости могут привести к увеличению времени отклика для клиентов.

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