Habilitando HTTP/2 e HTTP/3 no Nginx v1.27.0

5 min

language: ja bn en es hi pt ru zh-cn zh-tw

Olá, sou um incompetente.
Pensei que tinha encontrado uma casa em Tóquio uma vez, mas voltei à estaca zero, e ultimamente sinto que encontrei uma boa propriedade de alguma forma. Na pior das hipóteses, vou acabar em alguma casa compartilhada.

No meu trabalho atual, os membros do mesmo projeto me disseram 'Vamos fazer uma festa de despedida!', e sou grato por isso ultimamente.
Realmente sinto que sou abençoado com as pessoas na minha vida.

A propósito, enviei um pull request para o Deno outro dia e eles definiram um marco, então só preciso acompanhar o código-fonte calmamente, sem pressa. Encontrar a solução ideal para o código Rust do Deno, que se tornou uma quantidade enorme de alguma forma, e tentar fazer o mínimo de alterações possível, mesmo para uma funcionalidade trivial, é como se o manual fosse o próprio código-fonte, então não há outra opção senão tentar várias coisas.
Se não funcionar, pensarei nisso quando não funcionar.

Vamos habilitar HTTP/2 e HTTP/3 no Nginx

Ao ler um artigo de entrevista com Rasmus Lerdorf, o desenvolvedor do PHP, vi que ele falava sobre sentir o futuro no HTTP/2, o que me fez pensar 'Hmm, como está meu servidor Nginx?' e decidi implementá-lo.
Aparentemente, o suporte a HTTP/3 no Nginx é a partir da v1.25, então vou verificar a versão.

# nginx -v
nginx version: nginx/1.27.0

Parece que é compatível.
Meu Nginx não foi instalado via pkg, mas sim compilado por mim, então pode haver diferenças mesmo em um ambiente FreeBSD idêntico.

Vou tentar implementá-lo por enquanto, sem pensar em coisas complicadas.

Adicionando ao arquivo conf

Como é apenas um servidor Nginx funcionando como proxy reverso, farei isso rapidamente.

server {
    listen 443 ssl;
    listen 443 quic reuseport;
    listen [::]:443 quic reuseport;

    http2 on;
    http3 on;
    server_name soulminingrig.com www.soulminingrig.com;

Acho que HTTP/3 é algo que o Google está tentando promover, e o próprio protocolo QUIC foi criado pelo Google.
Adicione o seguinte às informações do cabeçalho:

        add_header Alt-Svc 'h3=":443"; ma=86400';
        add_header X-Content-Type-Options nosniff;

Em seguida, teste com nginx -t e, se não houver problemas, reinicie.
Como estou trabalhando como usuário root, execute o seguinte:

service nginx restart

E parece que o próprio QUIC usa 443/UDP, então preciso abrir essa porta...
Capítulo 3: HTTP/3 Detalhado - Como o QUIC é utilizado e como a aceleração é alcançada

Atualmente, muitas implementações parecem usar a porta UDP 443 por padrão.

Conforme visto acima,

        add_header Alt-Svc 'h3=":443"; ma=86400';

Como a porta configurada foi a 443, parece que basta abrir a porta 443, e se for alterada, abrir uma porta diferente.

vim /etc/pf.conf

Com isso, adicione o seguinte:

set skip on lo
exsrv1 = 167.179.75.206
~~~
# HTTP/3 Protocol
pass in inet proto udp from any to $exsrv1 port 443

Agora, teste com a opção -nf e depois aplique com -f.

pfctl -nf /etc/pf.conf
pfctl -f /etc/pf.conf

Foi aplicado corretamente?

Parece que há uma maneira de verificar se foi aplicado usando Curl, mas geralmente, para esses casos, é melhor verificar de um local não relacionado à sua própria rede para uma validação mais eficaz, então vou verificar pelo navegador.
Verificação HTTP/3
Image
Sim, funcionou!

Existem pessoas que configuram com mais detalhes, mas acho que por enquanto isso é suficiente.
Então é isso. Conto com vocês novamente.

Related Posts