sxg: Поддержка подписанных HTTP Exchange (SXG) для NGINX
Установка на Debian/Ubuntu
Эти документы относятся к пакету APT nginx-module-sxg, предоставляемому репозиторием GetPageSpeed Extras.
- Настройте репозиторий APT, как описано в настройке репозитория APT.
- Установите модуль:
sudo apt-get update
sudo apt-get install nginx-module-sxg
Warning
Этот модуль еще не опубликован как nginx-module-sxg в репозиториях APT. Следите за обновлениями или напишите на support@getpagespeed.com, чтобы запросить его.
Поддержка подписанных HTTP Exchange (SXG) для nginx. Nginx будет преобразовывать ответы от
вышестоящего приложения в SXG, когда запросы клиента содержат заголовок HTTP Accept:
application/signed-exchange;v=b3 с наивысшим значением qvalue.
Конфигурация
Модулю Nginx-SXG требуется настройка на nginx.
Директивы
sxg
Флаг активации модуля SXG.
on: Включить этот плагин.off: Отключить этот плагин.
Значение по умолчанию — off.
sxg_certificate
Полный путь к файлу сертификата. Сертификат должен соответствовать всем условиям ниже.
- Имеет расширение
CanSignHttpExchanges. - Использует ECDSA256 или ECDSA384.
Эта директива всегда обязательна.
sxg_certificate_key
Полный путь к частному ключу для сертификата.
Эта директива всегда обязательна.
sxg_cert_url
URL для файла сертификата в кодировке CBOR. Протокол должен быть https.
Эта директива всегда обязательна.
sxg_validity_url
URL для файла информации о действительности. Он должен быть https и иметь тот же
происхождение, что и веб-сайт.
Эта директива всегда обязательна.
sxg_max_payload
Максимальный размер HTTP тела, из которого этот модуль может генерировать SXG. Значение по умолчанию — 67108864 (64 MiB).
sxg_cert_path
Абсолютный путь, в котором nginx будет генерировать и предоставлять файл сертификата в кодировке CBOR. Но убедитесь, что OCSP-ответчик для сертификата доступен с вашего сервера nginx, чтобы получить ответы OCSP. Эта директива рекомендуется, но не обязательна.
sxg_expiry_seconds
Срок действия сгенерированного файла SXG в секундах.
Он не должен превышать 604800 (1 неделя).
Эта директива является необязательной. Значение по умолчанию — 86400 (1 день).
sxg_fallback_host
Имя хоста для резервного URL сгенерированного файла SXG. Эта директива необязательна. Значение по умолчанию — это параметр поля Host заголовка HTTP-запроса.
Пример конфигурации
load_module "modules/ngx_http_sxg_filter_module.so";
http {
upstream app {
server 127.0.0.1:3000;
}
include mime.types;
default_type application/octet-stream;
subrequest_output_buffer_size 4096k;
server {
listen 80;
server_name example.com;
sxg on;
sxg_certificate /path/to/certificate-ecdsa.pem;
sxg_certificate_key /path/to/private-key-ecdsa.key;
sxg_cert_url https://cdn.test.com/example.com.cert.cbor;
sxg_validity_url https://example.com/validity/resource.msg;
sxg_expiry_seconds 604800;
sxg_fallback_host example.com;
location / {
proxy_pass http://app;
}
}
}
Поддержка субресурсов
nginx-sxg-module автоматически включает подписи субресурсов в свои ответы, позволяя конечным пользователям предварительно загружать их от дистрибьютора.
При нахождении записи link: rel="preload" в заголовке ответа HTTP от вышестоящего сервера, этот плагин соберет указанный ресурс к вышестоящему и автоматически добавит rel="allowed-alt-sxg";header-integrity="sha256-...." к оригинальному HTTP-ответу.
Эта функциональность является важной для предварительной загрузки субресурсов для более быстрого кросс-сайтового навигации.