Модуль http_v2
#
Обеспечивает поддержку HTTP/2.
По умолчанию этот модуль не собирается, его сборку необходимо разрешить с помощью конфигурационного параметра ‑‑with‑http_v2_module.
В наших репозиториях модуль включен в сборку.
Пример конфигурации#
server {
listen 443 ssl http2;
ssl_certificate server.crt;
ssl_certificate_key server.key;
}
Важно
Чтобы принимать HTTP/2-соединения по TLS, необходимо наличие поддержки расширения «Application-Layer Protocol Negotiation» (ALPN) протокола TLS, появившейся в OpenSSL версии 1.0.2.
Если директива ssl_prefer_server_ciphers установлена в значение «on», шифры должны быть настроены таким образом, чтобы соответствовать чёрному списку RFC 9113, Appendix A а также поддерживаться клиентами.
Директивы#
http2_body_preread_size#
- Синтаксис:
http2_body_preread_size
размер;- Умолчание:
—
- Контекст:
http, server
Задаёт размер буфера для каждого запроса, в который может сохраняться тело запроса до того, как оно начнёт обрабатываться.
http2_chunk_size#
- Синтаксис:
http2_chunk_size
размер;- Умолчание:
http2_chunk_size 8k;
- Контекст:
http, server, location
Задаёт максимальный размер частей, на которое будет разделяться тело ответа. Слишком маленькое значение может привести к росту накладных расходов. Слишком большое значение может негативно сказаться на приоритизации из-за блокировки очереди.
http2_max_concurrent_pushes#
- Синтаксис:
http2_max_concurrent_pushes
число;- Умолчание:
http2_max_concurrent_pushes 10;
- Контекст:
http, server
Ограничивает максимальное число параллельных push-запросов в соединении.
http2_max_concurrent_streams#
- Синтаксис:
http2_max_concurrent_streams
число;- Умолчание:
http2_max_concurrent_streams 128;
- Контекст:
http, server
Задаёт максимальное число параллельных HTTP/2-потоков в соединении.
http2_push#
- Синтаксис:
http2_push
uri | off;- Умолчание:
http2_push off;
- Контекст:
http, server, location
Заблаговременно отправляет (push) запрос к заданному uri вместе с ответом на оригинальный запрос. Будут обработаны только относительные URI с абсолютными путями, например:
http2_push /static/css/main.css;
В значении uri
допустимо использование переменных.
На одном уровне конфигурации можно указать несколько http2_push директив. Параметр off
отменяет действие унаследованных с предыдущего уровня конфигурации директив http2_push.
http2_push_preload#
- Синтаксис:
http2_push_preload
on | off;- Умолчание:
http2_push_preload off;
- Контекст:
http, server, location
Разрешает автоматическое преобразование preload links, указанных в полях «Link» заголовка ответа, в push-запросы.
http2_recv_buffer_size#
- Синтаксис:
http2_recv_buffer_size
размер;- Умолчание:
http2_recv_buffer_size 256k;
- Контекст:
http
Задаёт размер входного буфера для рабочего процесса.
Встроенные переменные#
Модуль http_v2 поддерживает следующие встроенные переменные:
$http2
#
согласованный идентификатор протокола:
|
для HTTP/2 через TLS |
|
для HTTP/2 через незашифрованный TCP |
|
пустая строка для остальных случаев |