client_body_in_file_only

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

Синтаксисclient_body_in_file_only on | off;
По умолчаниюoff
Контекстhttp, server, location
Аргументы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 должна учитывать хранение в файлах, поскольку это может изменить способ обработки загрузок или форм.

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