Модуль http_v2#

Обеспечивает поддержку HTTP/2.

Пример конфигурации#

server {
    listen 443 ssl;

    http2 on;

    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#

Добавлено в версии 1.2.0.

Синтаксис:

http2 on | off;

Умолчание:

http2 off;

Контекст:

http, server

Разрешает протокол HTTP/2.

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#

Не рекомендуется, начиная с версии 1.2.0.

Синтаксис:

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#

Не рекомендуется, начиная с версии 1.2.0.

Синтаксис:

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#

Не рекомендуется, начиная с версии 1.2.0.

Синтаксис:

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#

согласованный идентификатор протокола:

h2

для HTTP/2 через TLS

h2c

для HTTP/2 через незашифрованный TCP

""

пустая строка для остальных случаев