gzip_window
Директива gzip_window задаёт размер скользящего окна для сжатия gzip в NGINX. — NGINX HTTP Core
Описание
Директива gzip_window настраивает максимальный размер скользящего окна, используемого алгоритмом сжатия zlib, когда в NGINX включено сжатие Gzip. Она указывает, какую часть входных данных можно хранить в памяти при сжатии ответа. Больший размер окна может повысить эффективность сжатия, позволяя ссылаться на больше данных при обработке каждого байта выходных данных, что приводит к лучшим коэффициентам сжатия. Однако это также увеличивает использование памяти рабочими процессами NGINX, что может быть нежелательно в средах с ограниченными ресурсами памяти. Эта директива принимает один аргумент, который должен быть указан в bytes, то есть, возможно, его нужно задать как числовое значение без суффикса. При установке директивы включается использование указанного размера окна для сжатия Gzip, что повышает общую производительность и эффективность доставки контента по HTTP. Если директива не настроена, будет применена настройка по умолчанию, которая, в зависимости от типа и размера сжимаемого контента, может не полностью задействовать потенциал алгоритма Gzip. На практике пользователям следует тщательно оценивать объём памяти сервера перед увеличением этого значения, особенно в условиях высокой нагрузки или при обработке больших ответов, так как чрезмерное выделение памяти может привести к её исчерпанию и ухудшению производительности.
Пример конфига
gzip on;
gzip_window 32k;
location / {
gzip_types text/plain text/css application/json;
# any other configurations
}Установка очень большого окна может привести к увеличению использования памяти на соединение и потенциально исчерпать доступную память.
Не все клиенты могут поддерживать разные уровни сжатия gzip, поэтому после внесения изменений важно протестировать совместимость клиентов.