upload_merge_buffer_size
Устанавливает размер буфера для объединения данных загружаемых файлов при отправке multipart/form-data.
Описание
Директива upload_merge_buffer_size в модуле загрузки NGINX задаёт размер буфера, используемого для объединения данных загружаемых файлов. При обработке отправок multipart/form-data, особенно содержащих несколько частей файлов или поддерживающих возобновляемые загрузки, NGINX может временно сохранять и обрабатывать фрагменты загружаемых данных. Процесс объединения гарантирует, что входящие данные корректно отформатированы и собраны перед их обработкой или сохранением. Увеличение размера буфера может повысить производительность за счёт уменьшения частоты перераспределения памяти, возникающего при работе с большими файлами или при множественных одновременных загрузках, однако это также может увеличить объём используемой памяти на соединение.
Параметр этой директивы задаётся в байтах; увеличение значения позволяет удерживать в памяти более крупные фрагменты входящих данных одновременно. Однако важно найти баланс, поскольку чрезмерно большие значения могут привести к росту потребления памяти, особенно при высокой нагрузке и множестве одновременных загрузок. Правильная настройка этой директивы на основе ожидаемых размеров загрузок и характера трафика позволит получить оптимальные результаты.
Директива может использоваться в различных контекстах, включая http, server и location, что обеспечивает гибкость конфигурации в соответствии с конкретными потребностями приложения — например, разные требования к загрузкам для разных локаций или серверов.
Пример конфига
http {
server {
location /upload {
upload_pass /upload_handler;
upload_merge_buffer_size 2m;
upload_store /tmp/uploads;
}
}
}Установка слишком большого размера буфера может исчерпать память сервера при нагрузке.
Директива не вступает в силу, пока рабочие процессы NGINX не будут перезагружены.
Неправильная настройка может привести к фрагментированным или неполным загрузкам данных.