fastcgi_request_buffering
Директива `fastcgi_request_buffering` управляет тем, включена ли буферизация тела запроса для запросов FastCGI. — NGINX HTTP Core
Описание
В 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.