client_body_in_file_only

Директива `client_body_in_file_only` управляет тем, сохраняется ли тело запроса только в файл. — NGINX HTTP Core

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

Описание

Директива `client_body_in_file_only` в NGINX используется для управления поведением сохранения тел запросов клиентов, когда `client_body` установлен в файл. Директива позволяет указать, должно ли тело запроса сохраняться исключительно в файл вместо обработки напрямую в оперативной памяти. Директива принимает аргумент `on` или `off`: при `on` тело запроса сохраняется во временный файл, а при `off` файловое хранилище для тела запроса не используется и оно обрабатывается напрямую в памяти. При включении это особенно полезно в сценариях, где ожидаются большие загрузки, так как предотвращает чрезмерное потребление памяти сервером, что может привести к ухудшению производительности. Кроме того, временный файл может служить механизмом для асинхронной обработки больших тел, что позволяет более эффективно использовать ресурсы. Вы можете размещать эту директиву в контекстах `http`, `server` или `location`, обеспечивая гибкость конфигурации в зависимости от архитектурных потребностей вашего приложения. Однако важно убедиться, что для каталога, в котором сохраняются файлы, установлены достаточные права доступа, чтобы избежать неожиданных ошибок. Когда эта директива отключена, любой запрос с телом будет обрабатываться в памяти, что может быть непригодно для запросов с большими телами и повышает риск исчерпания ресурсов сервера в условиях высокой нагрузки.

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

location /upload {
    client_body_in_file_only on;
    client_max_body_size 10M;
    # other configurations
}

Использование `client_body_in_file_only on` требует соответствующих прав файловой системы для записи временных файлов, что может привести к ошибкам при неправильной настройке.

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