fastcgi_request_buffering

Директива `fastcgi_request_buffering` управляет тем, включена ли буферизация тела запроса для запросов FastCGI. — NGINX HTTP Core

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

Описание

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

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

location /upload {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_request_buffering off;
}

Отключение буферизации запросов может привести к снижению производительности для небольших запросов из-за накладных расходов на потоковую обработку.

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