Перейти к содержанию

zstd: Модуль NGINX для сжатия Zstandard

Установка на Debian/Ubuntu

Эти документы относятся к APT пакету nginx-module-zstd, предоставляемому репозиторием GetPageSpeed Extras.

  1. Настройте репозиторий APT, как описано в настройке репозитория APT.
  2. Установите модуль:
sudo apt-get update
sudo apt-get install nginx-module-zstd
Показать дистрибутивы и архитектуры
| Дистрибутив | Версия         | Компонент   | Архитектуры   |
|-------------|----------------|-------------|----------------|
| debian      | trixie         | main        | amd64, arm64   |
| debian      | trixie-mainline| main        | amd64, arm64   |
| ubuntu      | focal          | main        | amd64, arm64   |
| ubuntu      | focal-mainline | main        | amd64, arm64   |
| ubuntu      | jammy          | main        | amd64, arm64   |
| ubuntu      | jammy-mainline | main        | amd64, arm64   |
| ubuntu      | noble          | main        | amd64, arm64   |
| ubuntu      | noble-mainline | main        | amd64, arm64   |

zstd-nginx-module - Модуль Nginx для сжатия Zstandard.

Содержание

Статус

Этот модуль Nginx в настоящее время считается экспериментальным. Проблемы и PR приветствуются, если вы столкнетесь с какими-либо проблемами.

Описание

## укажите словарь
zstd_dict_file /path/to/dict;

server {
    listen 127.0.0.1:8080;
    server_name localhost;

    location / {
        # включить сжатие zstd
        zstd on;
        zstd_min_length 256; # не менее 256 байт
        zstd_comp_level 3; # установить уровень 3

        proxy_pass http://foo.com;
    }
}

server {
    listen 127.0.0.1:8081;
    server_name localhost;

    location / {
        zstd_static on;
        root html;
    }
}

Директивы

ngx_http_zstd_filter_module

Модуль ngx_http_zstd_filter_module является фильтром, который сжимает ответы с использованием метода "zstd". Это часто помогает сократить размер передаваемых данных вдвое или даже больше.

zstd_dict_file

Синтаксис: zstd_dict_file /path/to/dict;
По умолчанию: -
Контекст: http

Указывает внешний словарь.

ПРЕДУПРЕЖДЕНИЕ: Будьте осторожны! Регистрация кодирования содержимого только указывает средство для сигнализации об использовании формата zstd и дополнительно не указывает никакого механизма для рекламы/ведении переговоров/синхронизации использования конкретного словаря между клиентом и сервером. Используйте zstd_dict_file только если вы можете гарантировать, что обе стороны (сервер и клиент) способны использовать один и тот же словарь (например, реклама с помощью HTTP-заголовка). См. https://github.com/tokers/zstd-nginx-module/issues/2 для подробностей.

zstd

Синтаксис: zstd on | off;
По умолчанию: zstd off;
Контекст: http, server, location, if in location

Включает или отключает сжатие zstd для ответа.

zstd_comp_level

Синтаксис: zstd_comp_level level;
По умолчанию: zstd_comp_level 1;
Контекст: http, server, location

Устанавливает уровень сжатия zstd для ответа. Приемлемые значения находятся в диапазоне от 1 до ZSTD_maxCLevel().

zstd_min_length

Синтаксис: zstd_min_length length;
По умолчанию: zstd_min_length 20;
Контекст: http, server, location

Устанавливает минимальную длину ответа, который будет сжат zstd. Длина определяется только из заголовка "Content-Length" ответа.

zstd_types

Синтаксис: zstd_types mime-type ...;
По умолчанию: zstd_types text/html;
Контекст: http, server, location

Включает ztd для ответов на указанные MIME типы в дополнение к "text/html". Специальное значение "*" соответствует любому MIME типу.

zstd_buffers

Синтаксис: zstd_buffers number size;
По умолчанию: zstd_buffers 32 4k | 16 8k;
Контекст: http, server, location

Устанавливает количество и размер буферов, используемых для сжатия ответа. По умолчанию, размер буфера равен одной странице памяти. Это либо 4K, либо 8K, в зависимости от платформы.

ngx_http_zstd_static_module

Модуль ngx_http_zstd_static_module позволяет отправлять предкомпилированные файлы с расширением ".zst" вместо обычных файлов.

zstd_static

Синтаксис: zstd_static on | off | always;
По умолчанию: zstd_static off;
Контекст: http, server, location

Включает ("on") или отключает ("off") проверку существования предкомпилированных файлов. Также учитываются следующие директивы: gzip_vary.

При значении "always", файл "zstd" используется во всех случаях, без проверки, поддерживает ли клиент его.

Переменные

ngx_http_zstd_filter_module

$zstd_ratio

Достигнутое отношение сжатия, рассчитанное как отношение между оригинальным и сжатым размерами ответа.