http2_body_preread_size

Директива http2_body_preread_size задаёт максимальный размер тела запроса HTTP/2, который может быть предварительно прочитан и буферизирован перед обработкой. — NGINX HTTP Core

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

Описание

Директива `http2_body_preread_size` используется для настройки максимального размера тела запроса HTTP/2, который может быть прочитан и временно сохранён в памяти (буферизирован) перед передачей его обработчику запроса в NGINX. Это особенно полезно для приложений, где требуется ранняя проверка тела запроса до его полной обработки. Когда запрос поступает по протоколу HTTP/2, буферизация части тела запроса позволяет NGINX анализировать или проверять содержимое, например проверять определённые заголовки или убеждаться, что тело соответствует ожидаемым форматам данных. Установка подходящего значения для `http2_body_preread_size` помогает оптимизировать использование памяти и производительность: слишком большое значение может привести к избыточному потреблению памяти, тогда как слишком маленькое может ограничить возможность эффективного чтения больших запросов. Директива принимает значение размера в качестве аргумента, которое можно указать в байтах (например, 1k, 2m), чтобы определить максимальное количество данных для буферизации. Настройка этого значения в соответствии с требованиями приложения и ожидаемыми размерами запросов важна для оптимальной производительности и управления ресурсами NGINX.

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

http {
    http2_body_preread_size 64k;
}

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

Учтите ограничения ресурсов: установка слишком большого размера может привести к увеличению использования памяти и потенциально вызвать нестабильную работу приложения.