image_filter_buffer

Директива `image_filter_buffer` задаёт размер буфера, используемого для обработки изображений в NGINX. — NGINX HTTP Core

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

Описание

Директива `image_filter_buffer` настраивает объём памяти, выделяемой для обработки изображений при использовании модуля фильтра изображений NGINX. Эта директива важна при работе с крупными изображениями, так как позволяет эффективно их обрабатывать и избегать чрезмерного выделения памяти, что могло бы привести к снижению производительности. Размер буфера позволяет веб‑серверу NGINX временно удерживать данные изображения в памяти при выполнении операций, таких как изменение размера, обрезка или модификация изображений, перед их отправкой клиентам. Эту директиву можно задавать в контекстах `http`, `server` или `location`. При указании она принимает один аргумент, обозначающий размер буфера в байтах. Если указанный размер недостаточен для обработки изображения, NGINX может вернуть ошибку или не суметь корректно обработать изображение. Поэтому важно убедиться, что буфер настроен соответствующим образом в зависимости от размера и типа изображений, которые обслуживаются или обрабатываются. На практике эта директива помогает поддерживать эффективность использования ресурсов сервера, одновременно обеспечивая возможность беспрепятственного выполнения операций с изображениями. При установке этого значения следует учитывать доступную память сервера и ожидаемую нагрузку, чтобы найти баланс между производительностью и потреблением памяти.

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

location /images/ {
    image_filter buffer 16k;
    image_filter resize 200x200;
}

Использование слишком малого буфера может привести к ошибкам при обработке больших изображений.

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