fastcgi_buffering

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

Синтаксисfastcgi_buffering on | off;
По умолчаниюon
Контекстhttp, server, location
Аргументы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, поскольку большие ответы могут потреблять значительные объёмы памяти.

← Ко всем директивам