Модуль 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.
Рекомендуется использовать библиотеку SSL с поддержкой QUIC, такую как BoringSSL, LibreSSL или QuicTLS. В противном случае, при использовании библиотеки OpenSSL, будет использоваться совместимый с OpenSSL слой, который не поддерживает ранние данные.
Известные проблемы
Модуль находится в стадии разработки, используйте с осторожностью.
Пример конфигурации
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';
}
}
}
Обратите внимание, что для приема соединений HTTP/3 по TLS требуется поддержка протокола TLSv1.3, доступная начиная с версии OpenSSL 1.1.1.
Директивы
| Синтаксис: | 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-2024 Nginx, Inc.
Licensed under the BSD License.
https://nginx.org/en/docs/http/ngx_http_v3_module.html