HTTP/3#
Fornece suporte ao protocolo HTTP/3 para conexões de cliente, bem como para conexões com servidores proxy configurados usando as seguintes diretivas do módulo Proxy:
Ao compilar a partir do código-fonte,
este módulo não é compilado por padrão;
ele deve ser habilitado com a
opção de compilação ‑‑with‑http_v3_module
build option.
Em pacotes e imagens de nossos repositórios,
o módulo está incluído na compilação. Nota Note que aceitar conexões HTTP/3 sobre TLS requer suporte ao protocolo TLSv1.3, que está disponível desde a versão 1.1.1 do OpenSSL. Habilita a negociação do protocolo HTTP/3. Habilita a negociação do protocolo HTTP/0.9 usado em testes de interoperabilidade QUIC. Aviso Habilite este modo apenas para executar testes especializados que o exijam explicitamente. Padrão http, server Inicializa as configurações HTTP/3 e QUIC
e define o número máximo de fluxos de requisição HTTP/3 simultâneos em uma conexão. Define a capacidade da tabela dinâmica
para conexões de servidor. Nota Uma diretiva similar proxy_http3_max_table_capacity
faz isso para conexões proxy.
Para evitar erros,
o uso da tabela dinâmica é desabilitado quando o proxy com cache está habilitado. Define o tamanho do buffer usado para leitura e escrita dos fluxos QUIC. Padrão http, server Define o valor do parâmetro de transporte QUIC active_connection_id_limit. Este é o número máximo de IDs de conexão que podem ser armazenados no servidor. Habilita o roteamento de pacotes QUIC usando eBPF. Quando habilitado, isso permite suportar migração de conexão QUIC. Nota A diretiva é suportada apenas no Linux 5.7+. Habilita o envio em modo de lote otimizado usando offloading de segmentação. Nota O envio otimizado é suportado apenas no Linux com Define um file com a chave secreta usada para criptografar tokens de reset sem estado e validação de endereço. Por padrão, uma chave aleatória é gerada a cada recarga. Tokens gerados com chaves antigas não são aceitos. Habilita o recurso de Validação de Endereço QUIC. Isso inclui enviar um novo token em um pacote Retry ou um frame NEW_TOKEN e validar um token recebido no pacote Initial. O módulo http_v3 suporta as seguintes variáveis integradas: identificador do protocolo negociado: para conexões HTTP/3 para conexões hq uma string vazia caso contrário número serial da conexão QUICExemplo de Configuração#
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 {
# para melhor compatibilidade é recomendado
# usar a mesma porta para http/3 e https
listen 8443 quic reuseport;
listen 8443 ssl;
ssl_certificate certs/example.com.crt;
ssl_certificate_key certs/example.com.key;
location / {
# usado para anunciar a disponibilidade do HTTP/3
add_header Alt-Svc 'h3=":8443"; ma=86400';
}
}
}
Diretivas#
http3#
http3_hq#
http3_max_concurrent_streams#
http3_max_concurrent_streams
number;http3_max_concurrent_streams 128;
http3_max_table_capacity#
http3_stream_buffer_size#
quic_active_connection_id_limit#
quic_active_connection_id_limit
number;quic_active_connection_id_limit 2;
quic_bpf#
quic_gso#
UDP_SEGMENT
.quic_host_key#
quic_retry#
Variáveis Integradas#
$http3
#h3
hq
""
$quic_connection
#