http2_push_preload

Включает серверный push HTTP/2 для динамически предварительно загружаемых ресурсов. — NGINX HTTP Core

http2_push_preload
httpserverlocation
Синтаксисhttp2_push_preload on | off;
По умолчаниюoff
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументыflag

Описание

Директива `http2_push_preload` используется для указания того, что сервер должен проактивно отправлять ресурсы клиенту в контексте HTTP/2, не дожидаясь запроса со стороны клиента. Эта функция особенно полезна для оптимизации скорости загрузки страниц и улучшения пользовательского опыта за счёт доставки необходимых ресурсов в тот момент, когда они требуются. При установке в `on` директива позволяет серверу автоматически отправлять связанные ресурсы, помеченные для предварительной загрузки, на основе текущей запрашиваемой клиентом страницы. Эту директиву можно указать в контекстах `http`, `server` или `location` в конфигурационном файле NGINX. Включив `http2_push_preload`, администраторы сервера могут улучшить производительность загрузки приложений, особенно для сайтов с большим объёмом контента и множеством зависимостей ресурсов. Однако ненужные отправки могут расходовать пропускную способность и приводить к ухудшению производительности, если их не настроить правильно. Поэтому следует тщательно выбирать ресурсы, помечаемые для отправки, чтобы избежать отправки слишком большого количества ответов, которые клиенту не нужны.

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

server {
    listen 443 ssl http2;
    server_name example.com;

    http2_push_preload on;

    location / {
        root /var/www/html;
        index index.html;
        add_header Link "/styles/main.css; rel=preload; as=style";
    }
}

Чрезмерное использование server push может привести к увеличению использования полосы пропускания.

Не все браузеры поддерживают HTTP/2 server push, поэтому поведение может отличаться у разных пользователей.

Всегда убеждайтесь, что pushed resources действительно полезны клиенту, чтобы не тратить ресурсы впустую.