limit_rate
Директива `limit_rate` ограничивает пропускную способность для ответа, отправляемого клиенту. — NGINX HTTP Core
Описание
Директива `limit_rate` позволяет задать ограничение скорости передачи для клиентов, получающих ответ. Это особенно полезно для предотвращения ситуации, когда один пользователь потребляет чрезмерные ресурсы сервера или пропускную способность, что в противном случае могло бы ухудшить производительность для других пользователей. Директива принимает один аргумент, который задаёт максимальную скорость передачи в байтах в секунду. Вы можете указать суффикс, например 'k' для килобайтов или 'm' для мегабайтов, чтобы упростить настройку. При применении `limit_rate` директива влияет на ответ, контролируя объём данных, отправляемых за интервал, фактически реализуя дросселирование исходящего трафика. Это ограничение активно на этапе отправки ответа в процессе обработки запроса, а значит действует в контекстах директив `http`, `server` и `location`, а также внутри `if` в `location`. Это особенно полезно при отдаче больших файлов или в периоды пикового трафика, позволяя обеспечивать справедливое распределение пропускной способности между клиентами. Если текущая скорость загрузки превышает заданное значение `limit_rate`, NGINX приостановит передачу данных, чтобы соблюсти это ограничение, что приведёт к более стабильной работе для всех пользователей, гарантируя, что ни один клиент не сможет монополизировать ресурсы сервера.
Пример конфига
location /downloads {
limit_rate 100k;
}Использование `limit_rate` внутри директивы `if` может привести к непредсказуемому поведению из-за сложности обработки конфигурации NGINX.
Ограничение скорости применяется только к передаваемым данным; оно не влияет на обработку входящих запросов.
Чрезмерно строгие лимиты скорости могут привести к увеличению времени отклика для клиентов.