http2

Включает поддержку HTTP/2 в указанном контексте конфигурации NGINX. — NGINX HTTP Core

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

Описание

Директива 'http2' включает протокол HTTP/2 для входящих запросов, обрабатываемых NGINX. Эту директиву можно указывать в контекстах 'http' или 'server'; она особенно полезна при использовании вместе с директивой 'listen' для обозначения того, что блок server должен поддерживать HTTP/2. При включении становятся доступными возможности протокола HTTP/2, такие как мультиплексирование, сжатие заголовков и приоритизация запросов, что повышает производительность и эффективность доставки содержимого. Директива 'http2' принимает в качестве аргумента флаг, который указывает, включён ли HTTP/2 ('on') или выключен ('off'). По умолчанию эта директива установлена в 'off', то есть поддержка HTTP/2 отключена, если она явно не включена в блоке server или http. При включении клиенты, поддерживающие HTTP/2, могут согласовать использование этого протокола при обращении к серверу, что позволяет лучше использовать ресурсы и ускоряет загрузку веб-страниц, обслуживаемых NGINX. Важно отметить, что для использования HTTP/2 сервер должен быть настроен на использование TLS/SSL, так как большинство браузеров требует зашифрованного соединения для разрешения HTTP/2. Поэтому часто эту директиву используют вместе с SSL-related директивами в блоке server для обеспечения защищённых подключений.

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

server {
    listen 443 ssl http2;
    server_name example.com;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
}

Убедитесь, что на сервере включён SSL, поскольку большинство браузеров требует HTTPS для HTTP/2.

Избегайте использования HTTP/2 в серверных блоках, которым достаточно HTTP/1.1, поскольку это может вызвать ненужные сложности при согласовании.

Убедитесь, что ваши upstream‑серверы и прокси также поддерживают HTTP/2, если критична совместимость функций.