Nginx é um servidor web/proxy reverso e proxy leve de alto desempenho
Foi anunciado recentemente lançamento da nova versão do Nginx 1.26.0, que é classificada como uma versão estável e implementa todas as alterações e melhorias que foram feitas durante o desenvolvimento da versão 1.25.
Para quem não conhece o Nginx, você deve saber que é um servidor web/proxy reverso leve desempenho e um proxy para protocolos de e-mail (IMAP/POP3) 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.
Principais novidades no nginx 1.26
Nesta nova versão do Nginx 1.26.0, uma das melhorias mais notáveis durante o desenvolvimento do ramo principal 1.25.x do nginx é o suporte experimental para HTTP/3 usando o módulo ngx_http_v3 que usa QUIC como transporte para HTTP/2. QUIC é uma extensão do protocolo UDP que oferece múltiplas conexões e métodos de criptografia equivalentes a TLS/SSL.
Outra mudança que se destaca é a introdução de um diretiva "http2" separada para habilitar seletivamente o protocolo HTTP/2 em servidores individuais, suporte push de servidor removido para HTTP/2 para otimizar a funcionalidade do protocolo.
Além disso, no Nginx 1.26.0 Medidas de proteção implementadas contra atividades anormais de clientes HTTP/2 e ataques DoS do tipo «Reinicialização rápida«, limitando o número de solicitações por conexão e restringindo a criação de novos threads.
Note-se também que foi adicionado suporte para servidores virtuais para módulo de streaming, permitindo que servidores virtuais sejam configurados em blocos “servidor {…}”, bem como introduzindo o módulo ngx_stream_pass_module para encaminhar conexões diretamente para qualquer conector de escuta associado a módulos como http, stream e mail. Isso melhora a capacidade de passar conexões de fluxo diretamente para soquetes de escuta e aumenta a eficiência do tratamento de conexões, reduzindo a sobrecarga e a latência associadas ao roteamento adicional de conexões.
Do outras mudanças que se destacam desta nova versão:
- A diretiva de ouvinte do módulo stream agora suporta parâmetros adicionais como "deferred", "accept_filter" e "setfib".
- Implementado suporte para determinar o tamanho do bloco usado para transferir dados entre o cache da CPU e a memória em algumas arquiteturas.
- O gerenciamento de buffers utilizados na detecção automática de conexões HTTP/2 foi significativamente melhorado
- Foi alcançado desempenho aprimorado ao iniciar configurações com um grande número de políticas de localização.
- Foi implementado suporte para detecção de linha de cache ou tamanho de bloco. Está disponível para algumas arquiteturas e é necessário principalmente para transferir informações entre a memória e o cache da CPU.
- A diretiva “ssl”, que anteriormente era rotulada como “obsoleta”, foi descontinuada
- Suporte para Homebrew no Apple Silicon.
- Correções de bugs e melhorias de compilação cruzada do Windows.
- Corrija o fechamento inesperado da conexão ao usar 0-RTT no QUIC.
Por fim, se estiver interessado em saber mais sobre o assunto, pode consultar os detalhes no link a seguir
Obtenha o nginx 1.26
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