fastcgi_buffering

Директива `fastcgi_buffering` управляет тем, нужно ли буферизовать ответы от FastCGI-серверов. — NGINX HTTP Core

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

Описание

Директива `fastcgi_buffering`, при установке в значение `on`, включает буферизацию ответов от FastCGI-серверов перед их отправкой клиенту. Этот механизм буферизации позволяет NGINX эффективнее обрабатывать ответы, считывая всё тело ответа от FastCGI-сервера в буфер перед пересылкой клиенту. Напротив, при установке в `off` ответы передаются клиенту сразу после получения, что может повысить отзывчивость ценой ухудшения управления ресурсами, особенно при высокой нагрузке. Когда директива установлена в `on`, NGINX использует несколько предопределённых размеров буферов, которые можно настроить с помощью других директив, таких как `fastcgi_buffers` и `fastcgi_buffer_size`. Такая стратегия буферизации может привести к снижению задержек для клиентов, поскольку NGINX сможет отправлять более крупные куски данных быстрее, когда весь ответ будет получен — это особенно полезно для больших тел ответа. Однако буферизацию нужно управлять осторожно; чрезмерная буферизация может привести к увеличению использования памяти. Эта директива может быть настроена в контекстах `http`, `server` или `location`, что обеспечивает гибкую конфигурацию в зависимости от конкретных потребностей. Важно понимать последствия обоих значений (`on` и `off`) для оптимальной настройки производительности NGINX в соответствии с требованиями приложения.

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

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_buffering off;
    include fastcgi_params;
}

Установка `fastcgi_buffering` в `off` может привести к повышенной загрузке процессора, так как ответы передаются клиентам напрямую без буферизации.

Рекомендуется контролировать использование памяти при использовании `fastcgi_buffering on`, поскольку большие ответы могут потреблять значительные объёмы памяти.