client_body_buffer_size

Директива `client_body_buffer_size` задаёт размер буфера для чтения тела запроса клиента в память. — NGINX HTTP Core

client_body_buffer_size
httpserverlocation
Синтаксисclient_body_buffer_size size;
По умолчанию16k
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументы1

Описание

Директива `client_body_buffer_size` указывает максимальный размер буфера, который NGINX будет использовать для чтения тела запроса клиента. Если тело превышает этот размер, NGINX запишет его во временный файл, что помогает управлять использованием памяти и повышать производительность, позволяя загружать большие файлы без исчерпания ресурсов памяти. Директиву можно устанавливать в контекстах `http`, `server` или `location`, что позволяет гибко настраивать её в зависимости от потребностей конкретного приложения. Когда поступает тело запроса, NGINX сравнивает размер запроса с указанным `client_body_buffer_size`. Если размер находится в пределах лимита, тело буферизуется в памяти; в противном случае оно сохраняется в файл на диске. Такое поведение важно для приложений, которые обрабатывают загрузки файлов или большие полезные нагрузки, поскольку правильная настройка размера буфера может оптимизировать как потребление памяти, так и скорость обработки. Значение может указываться в байтах, килобайтах (k), мегабайтах (m) и т.д., что позволяет тонко настроить параметр в зависимости от ожидаемого размера входящих запросов. Эта директива обычно используется вместе с другими связанными настройками, такими как `client_max_body_size`, которая задаёт максимальный допустимый размер тела запроса клиента в целом. Это дополнительно обеспечивает корректное управление ресурсами и предотвращает злоупотребления чрезмерно крупными загрузками.

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

http {
    client_body_buffer_size 32k;
}

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

Если `client_max_body_size` меньше, чем `client_body_buffer_size`, это может привести к непредвиденному поведению при обработке больших запросов.