scgi_buffers
Директива `scgi_buffers` задаёт количество и размер буферов, используемых для ответов SCGI. — NGINX HTTP Core
Описание
Директива `scgi_buffers` разработана для оптимизации обработки ответов SCGI (Simple Common Gateway Interface) в NGINX. Она задаёт количество буферов и их размер, которые сервер будет использовать для хранения ответа от SCGI-сервера перед его передачей клиенту. Правильная настройка буферов позволяет сбалансировать использование памяти и производительность; большие буферы могут уменьшать количество чтений из SCGI-сервера и, возможно, ускорять доставку ответа, особенно для больших ответов. Директива принимает два параметра: первый обозначает количество буферов, второй — размер каждого буфера. Буферы выделяются на каждый запрос, что означает, что при большем количестве сервер сможет эффективнее обслуживать несколько параллельных соединений. Нужно быть осторожным, чтобы не выделять слишком много памяти, так как это может привести к росту потребления памяти и потенциальному ухудшению производительности. Директиву `scgi_buffers` можно задавать в контекстах `http`, `server` или `location`, что даёт гибкость конфигурации в зависимости от потребностей масштабирования вашего приложения и его конкретных конечных точек. Эта директива дополняет другие настройки, связанные с буферами, в NGINX и может настраиваться совместно с ними для достижения оптимальной производительности.
Пример конфига
server {
listen 80;
location /app {
scgi_pass localhost:4000;
scgi_buffers 8 16k;
}
}Установка слишком малого размера буфера может привести к неполным ответам, если объём данных превышает размер буфера.
Если задать слишком много буферов, это может привести к увеличению использования памяти, особенно при высокой нагрузке.