scgi_buffer_size

Определяет размер буфера, используемого для чтения первой части ответа от SCGI-сервера. — NGINX HTTP Core

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

Описание

Директива `scgi_buffer_size` в NGINX имеет ключевое значение для управления тем, какой объём данных можно буферизовать из ответа SCGI-сервера до дальнейшей обработки. Когда NGINX взаимодействует с SCGI-бэкендом, он ожидает, что ответ придёт удобными для обработки фрагментами. Указывая `scgi_buffer_size`, вы контролируете буфер, выделяемый для начальной части этого ответа, включая заголовки SCGI. Эффективное управление размером этого буфера может существенно повлиять на производительность вашего приложения, особенно если размеры ответов варьируются. Директива принимает один аргумент, задающий размер буфера. Если сервер отправляет ответ, превышающий этот размер, NGINX при необходимости выделит дополнительные буферы, чтобы разместить весь ответ. Важно задавать это значение, исходя из понимания типичного размера SCGI-ответов, которые генерирует ваше приложение. Слишком маленький буфер может привести к лишним операциям выделения памяти, тогда как чрезмерно большой буфер будет тратить ресурсы и снижать производительность. Поэтому настройка этого параметра в соответствии с реальными шаблонами использования может привести к улучшению использования ресурсов и стабильности производительности.

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

location /app {
    scgi_pass 127.0.0.1:9000;
    scgi_buffer_size 8k;
}

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

Если размер установлен слишком большим, это может приводить к перерасходу памяти, особенно при высокой нагрузке.

Изменения этой директивы могут не вступить в силу до тех пор, пока NGINX не будет перезагружен или перезапущен, поэтому требуется осторожный подход к развертыванию.