nginx 1.25 chega com suporte para HTTP/3

nginx

Nginx é um servidor web/proxy reverso e proxy leve de alto desempenho

Alguns dias atrás o lançamento de a primeira versão do novo ramo principal nginx 1.25, dentro do qual continuará o desenvolvimento de novas funcionalidades.

Para quem não conhece o Nginx, você deve saber que é um servidor web/proxy reverso leve alto desempenho e um proxy para protocolos de e-mail (IMAP/POP3).

O NGINX é um servidor web leve e de alto desempenho que usa uma arquitetura assíncrona baseada em eventos para lidar com muitas solicitações simultâneas. Ele foi projetado para lidar com conteúdo estático e dinâmico e pode ser usado para atender a páginas da Web, streaming de mídia e solicitações de API.

O NGINX também oferece suporte a módulos dinâmicos, que permitem aos usuários adicionar ou remover recursos conforme necessário. Isso facilita a personalização do NGINX para casos de uso específicos.

Principais novidades no nginx 1.25

O lançamento desta nova versão se deve ao fato de que a adição do módulo ngx_http_v3 com suporte foi feita experimental para o protocolo HTTP / 3, embora como tal o módulo esteja desabilitado por padrão e para quem quiser testar o módulo deve saber que a opção “–With-http_v3_module» está habilitado no build.

Para que o módulo funcione, é recomendado construir com bibliotecas criptográficas que suportam o protocolo QUIC, como BoringSSL, LibreSSL ou QuicTLS. A compilação com OpenSSL usará uma camada de compatibilidade que não suporta o envio antecipado de dados do cliente (ssl_early_data).

É importante mencionar que aceitar conexões HTTP/3 sobre TLS requer suporte para o protocolo TLSv1.3, que está disponível desde a versão 1.1.1 do OpenSSL.

Para quem não conhece o novo protocolo HTTP/3, saiba que é definido pelo uso do protocolo QUIC (Conexões de Internet UDP rápidas) como transporte para HTTP/2. QUIC é um plug-in para o protocolo UDP que oferece suporte à multiplexação de várias conexões e fornece métodos de criptografia equivalentes a TLS/SSL. O protocolo foi criado em 2013 pelo Google como uma alternativa ao TCP + TLS para a Web, resolvendo o problema de configuração de conexão longa e tempo de handshaking no TCP e eliminando atrasos devido à perda de pacotes durante a transferência de dados. .

Sobre o desenvolvimento do ramo estável 1.24.x, isso ainda será mantido em paralelo e são feitas apenas alterações relacionadas à eliminação de bugs e vulnerabilidades graves, pois a atenção principal estará voltada para o desenvolvimento do ramo atual e também para a união de esforços para o ramo estável 1.26 que será formado a partir do ramo principal 1.25.xy que deve chegar no ano que vem.

Finalmente se você estiver interessado em saber mais sobre isso você pode verificar os detalhes no link a seguir.

Para usuários comuns que não têm a tarefa de garantir a compatibilidade com módulos de terceiros, é recomendável usar a ramificação principal, com base em quais versões do produto comercial Nginx Plus são formadas a cada três meses.

Obtenha o nginx 1.25

Os interessados ​​em poder obter a nova versão devem fazer o seguinte, dependendo do caso de sua distribuição.

Para RHEL e derivados, você deve adicionar o repositório com o seguinte comando:

sudo nano /etc/yum.repos.d/nginx.repo

E adicione isso no final

[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/rhel/$releasever/$basearch/
gpgcheck=0
enabled=1

E instalamos com:

dnf install nginx

Enquanto para o Ubuntu e derivados dele, eles devem digitar o seguinte:

sudo nano etc/apt/sources.list.d/nginx.list

E adicione isso ao arquivo:

deb https://nginx.org/packages/ubuntu/ $(lsb_release -sc) nginx
deb-src https://nginx.org/packages/ubuntu/ $(lsb_release -sc) nginx

E continuamos com a instalação com:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key
sudo apt update
sudo apt install nginx

Agora, para o caso de Amazon Linux 2023, eles devem digitar:

sudo yum install yum-utils

Adicionamos o seguinte em /etc/yum.repos.d/nginx.repo com o seguinte conteúdo:

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/amzn/2023/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
priority=9

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/amzn/2023/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
priority=9

E continuamos com a instalação com:

sudo yum instalar nginx

Por fim, para quem preferir a compilação do pacote, isso pode ser feito com os seguintes comandos (já baixado e estando dentro do diretório do código):

./configure
make
sudo make install