http2
Включает поддержку HTTP/2 в указанном контексте конфигурации NGINX. — NGINX HTTP Core
Описание
Директива '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, если критична совместимость функций.