Модуль ngx_http_v3_module
- Известные проблемы
- Пример конфигурации
- Директивы
- http3
- http3_hq
- http3_max_concurrent_streams
- http3_stream_buffer_size
- quic_active_connection_id_limit
- quic_bpf
- quic_gso
- quic_host_key
- quic_retry
- Встроенные переменные
Модуль ngx_http_v3_module (1.25.0) обеспечивает экспериментальную поддержку HTTP/3.
Этот модуль не собирается по умолчанию; для его включения следует использовать параметр конфигурации --with-http_v3_module.
Для этого модуля требуется библиотека OpenSSL версии 1.1.1 или выше.
Для поддержки 0-RTT требуется библиотека OpenSSL версии 3.5.1 или выше. Кроме того, для сборки и запуска этого модуля можно использовать библиотеки BoringSSL, LibreSSL или QuicTLS.
Известные проблемы
Модуль является экспериментальным: используйте его на свой страх и риск.
До версии 1.29.1 поддержку 0-RTT нельзя было включить с OpenSSL независимо от значения директивы ssl_early_data.
Модуль нельзя собрать на платформе Win32.
Пример конфигурации
http {
log_format quic '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" "$http3"';
access_log logs/access.log quic;
server {
# for better compatibility it's recommended
# to use the same port for http/3 and https
listen 8443 quic reuseport;
listen 8443 ssl;
ssl_certificate certs/example.com.crt;
ssl_certificate_key certs/example.com.key;
location / {
# used to advertise the availability of HTTP/3
add_header Alt-Svc 'h3=":8443"; ma=86400';
}
}
}
Директивы
| Синтаксис: | http3 on | off; |
|---|---|
| По умолчанию: | http3 on; |
| Контекст: | http, server |
Включает согласование протокола HTTP/3.
| Синтаксис: | http3_hq on | off; |
|---|---|
| По умолчанию: | http3_hq off; |
| Контекст: | http, server |
Включает согласование протокола HTTP/0.9, используемого в тестах совместимости QUIC.
| Синтаксис: | http3_max_concurrent_streams number; |
|---|---|
| По умолчанию: | http3_max_concurrent_streams 128; |
| Контекст: | http, server |
Задаёт максимальное количество одновременно открытых потоков запросов HTTP/3 в соединении.
| Синтаксис: | http3_stream_buffer_size size; |
|---|---|
| По умолчанию: | http3_stream_buffer_size 64k; |
| Контекст: | http, server |
Задаёт размер буфера для чтения и записи потоков QUIC.
| Синтаксис: | quic_active_connection_id_limit number; |
|---|---|
| По умолчанию: | quic_active_connection_id_limit 2; |
| Контекст: | http, server |
Задаёт значение транспортного параметра QUIC active_connection_id_limit. Это максимальное количество идентификаторов соединений клиента, которые могут храниться на сервере.
| Синтаксис: | quic_bpf on | off; |
|---|---|
| По умолчанию: | quic_bpf off; |
| Контекст: | main |
Включает маршрутизацию пакетов QUIC с помощью eBPF. При включении эта функция позволяет поддерживать миграцию соединений QUIC.
Директива поддерживается только в Linux 5.7 и выше.
| Синтаксис: | quic_gso on | off; |
|---|---|
| По умолчанию: | quic_gso off; |
| Контекст: | http, server |
Включает отправку оптимизированными пакетами с использованием аппаратной сегментации.
Оптимизированная отправка поддерживается только в Linux с UDP_SEGMENT.
| Синтаксис: | quic_host_key file; |
|---|---|
| По умолчанию: | — |
| Контекст: | http, server |
Задаёт file с секретным ключом, используемым для шифрования токенов сброса без сохранения состояния и проверки адреса. По умолчанию при каждой перезагрузке генерируется случайный ключ. Токены, созданные со старыми ключами, не принимаются.
| Синтаксис: | quic_retry on | off; |
|---|---|
| По умолчанию: | quic_retry off; |
| Контекст: | http, server |
Включает функцию проверки адреса QUIC. Она предусматривает отправку нового токена в пакете Retry или кадре NEW_TOKEN, а также проверку токена, полученного в пакете Initial.
Встроенные переменные
Модуль ngx_http_v3_module поддерживает следующие встроенные переменные:
$http3- идентификатор согласованного протокола: «
h3» для соединений HTTP/3, «hq» для соединений hq или пустая строка в остальных случаях.
© 2002-2021 Igor Sysoev
© 2011-2026 Nginx, Inc.
Licensed under the BSD License.
https://nginx.org/en/docs/http/ngx_http_v3_module.html