Lançamento do nginx 1.30.0 e do fork FreeNginx 1.30.0

Após um ano de desenvolvimento, foi lançada uma nova versão estável do servidor HTTP de alto desempenho e proxy multifuncional nginx 1.30.0, que incorpora as alterações acumuladas na versão principal 1.29.x. No futuro, todas as mudanças na versão estável 1.30 serão associadas à correção de erros sérios e vulnerabilidades. Em breve, será formada a versão principal nginx 1.31, onde o desenvolvimento de novas funcionalidades continuará. Para usuários comuns, que não têm a necessidade de garantir compatibilidade com módulos de terceiros, recomenda-se o uso da versão principal, a partir da qual as lançamentos comerciais do produto Nginx Plus são realizados a cada três meses. O código do nginx é escrito em C e distribuído sob a licença BSD.

De acordo com o relatório de fevereiro da empresa Netcraft, aproximadamente 321 milhões de sites estão operando sob o nginx (245 milhões há um ano, 243 milhões há dois anos, 289 milhões há três anos). O nginx é usado em 16,08% de todos os sites ativos (17,89% há um ano, 18,15% há dois anos, 18,94% há três anos), o que corresponde à segunda posição em popularidade nessa categoria (a participação do Apache é de 13,27% (16,03% há um ano, 20,09% há dois anos, 20,52% há três anos), Cloudflare – 20,62% (17,81%, 14,12%, 11,32%), Google – 10,65% (9,89%, 10,41%, 9,89%).

Ao considerar todos os sites, o nginx mantém a liderança com uma participação de 22,65% no mercado (20,48% há um ano, 22,31% há dois anos, 25,94% há três anos), enquanto a participação do Apache é de 12,19% (16,03%, 20,17%, 20,58%), Cloudflare – 15,27% (12,87%, 11,24%, 10,17%), OpenResty (plataforma baseada em nginx e LuaJIT) – 8,01% (9,36%, 7,93%, 7,94%).

Entre os milhões de sites mais acessados no mundo, o nginx ocupa a segunda posição com uma participação de 19,85% (20,37% há um ano, 20,63% há dois anos, 21,37% há três anos). O primeiro lugar é mantido pelo Cloudflare – 26,84% (22,32%, 22,59%, 21,62%). A participação do Apache httpd é de 15,84% (17,95%, 20,09%, 21,18%). Lançamento do nginx 1.30.0 e do fork FreeNginx 1.30.0

De acordo com dados do W3Techs, o nginx é usado em 32,8% dos sites entre os milhões mais acessados (em abril do ano passado, esse número era de 33,8%, no ano anterior, 34,3%). A participação do Apache caiu de 26,3% para 23,9% ao longo do ano, a participação do Microsoft IIS diminuiu de 4% para 3,4%, e a participação do Caddy caiu de 0,3% para 0,2%. A participação do Node.js aumentou de 4,4% para 6,0%, enquanto a participação do LiteSpeed cresceu de 14,6% para 15,2%.

As melhorias mais notáveis adicionadas durante a formação da versão principal 1.29.x:

  • Adicionada a suporte para a extensão TLS ECH (Encrypted ClientHello), que continua o desenvolvimento da extensão ESNI (Encrypted Server Name Indication) e é usada para criptografar informações sobre os parâmetros das sessões TLS, como o nome de domínio solicitado. A principal diferença entre ECH e ESNI é que, no ECH, em vez de criptografar níveis individuais de campos, toda a mensagem TLS ClientHello é criptografada, o que ajuda a bloquear vazamentos através de campos que não são abordados pelo ESNI, como o campo PSK (Pre-Shared Key). O uso do ECH é ativado através da especificação no diretório "ssl_ech_file" do arquivo de configuração ECHConfig no formato PEM. O suporte está disponível ao usar compilações do OpenSSL que incluem ECH.
  • Suporte ao protocolo Multipath TCP (MPTCP) foi adicionado, permitindo a entrega de pacotes simultaneamente por vários caminhos através de diferentes interfaces de rede. Para habilitar isso, foi adicionado o parâmetro «multipath» na diretiva «listen».
  • Adicionada a capacidade de vincular sessões de clientes aos mesmos servidores em um grupo. Estão disponíveis três métodos: "cookie" — transmissão de dados sobre a seleção através do cookie especificado; "route" — o servidor proxy designa um percurso para o cliente ao receber a primeira solicitação; "learn" — o nginx analisa as respostas do servidor upstream e memoriza as sessões iniciadas pelo servidor. Para configurar a vinculação, foi adicionada a diretiva "sticky" ao bloco "upstream" do módulo "http", e os parâmetros "route" e "drain" foram adicionados à diretiva "server". servidor Adicionada a diretiva "early_hints" e implementado suporte para o código HTTP 103 nas respostas dos backends proxy e gRPC. O código 103 permite informar ao cliente sobre o conteúdo de alguns cabeçalhos HTTP imediatamente após a solicitação, sem esperar que o servidor complete todas as operações relacionadas à solicitação e comece a entrega do conteúdo. De maneira semelhante, pode-se fornecer dicas sobre elementos relacionados à página sendo entregue que podem ser pré-carregados (por exemplo, podem ser fornecidos links para os estilos css e javascript utilizados na página). Ao receber informações sobre esses recursos, o navegador começará a carregá-los sem esperar que a página principal termine de ser entregue, o que ajuda a reduzir o tempo total de processamento da solicitação.
  • Adicionadas as diretivas add_header_inherit e add_trailer_inherit, permitindo alterar as regras de herança dos valores especificados nas diretivas add_header e add_trailer. O parâmetro "off" desativa a herança dos valores, enquanto o parâmetro "merge" permite adicionar valores do nível anterior aos valores do nível atual.
  • Adicionada a diretiva 'early_hints' e implementado o suporte ao código HTTP 103 nas respostas dos backends proxy e gRPC. O código 103 permite informar ao cliente sobre o conteúdo de alguns cabeçalhos HTTP logo após a solicitação, sem esperar que o servidor finalize todas as operações associadas à solicitação e inicie a entrega do conteúdo. De maneira semelhante, podem ser enviadas dicas sobre elementos relacionados à página em questão que podem ser pré-carregados (por exemplo, links para os arquivos css e javascript utilizados na página). Ao receber informações sobre esses recursos, o navegador começará a carregá-los sem aguardar a finalização da entrega da página principal, o que auxilia na redução do tempo total de processamento da solicitação.
  • Foi adicionada a diretiva "ssl_certificate_compression" para controlar a compressão. certificados TLS.
  • Adicionada a diretiva max_headers, que limita o número máximo de cabeçalhos HTTP em uma solicitação. Se o limite for excedido, um erro 400 (Bad Request) é retornado. Esta funcionalidade foi transferida do FreeNginx.
  • Adicionadas as variáveis $request_port e $is_request_port. A primeira variável contém o número da porta do componente URI ou do cabeçalho "Host", enquanto a segunda contém ":" se a variável $request_port não estiver vazia.
  • Adicionadas as variáveis $ssl_sigalg e $ssl_client_sigalg, que contêm o nome do algoritmo de assinatura digital para a conexão TLS.
  • Na diretiva "geo", foi adicionado o parâmetro "volatile", que desativa o cache da variável. É permitido usar máscaras na diretiva "include", especificada dentro do bloco "geo".
  • No bloco "upstream", a diretiva "keepalive" é ativada por padrão. No parâmetro "keepalive" usado no bloco "upstream", foi adicionado o parâmetro "local". Ao especificar este parâmetro, em vez de compartilhar uma única conexão com um servidor upstream comum, mencionado em diferentes blocos location e server, cada bloco mantém uma conexão separada com o upstream.
  • Ao usar o modo proxy, a versão do protocolo HTTP/1.1 é definida por padrão com o modo keep-alive ativado (no módulo ngx_http_proxy_module, o suporte a keep-alive está ativado por padrão e o valor "1.1" é definido na diretiva "proxy_http_version", suspendendo o envio do cabeçalho "Connection" por padrão).
  • O módulo ngx_http_proxy agora suporta o protocolo HTTP/2, permitindo o uso de HTTP/2 ao acessar os backends.
  • Fornecida a capacidade de carregar chaves criptográficas de tokens de hardware, usando a biblioteca OpenSSL como provedor.
  • Foi adicionada ao protocolo QUIC o suporte ao modo 0-RTT, disponível em sistemas com OpenSSL 3.5.1 e versões posteriores.
  • Adicionada a capacidade de compilar com a biblioteca criptográfica AWS-LC, desenvolvida pela Amazon.
  • Por padrão, a compressão de certificados TLSv1.3 está desabilitada.
  • Compatibilidade garantida com a biblioteca OpenSSL 4.0.

Além disso, vale destacar a publicação do lançamento do projeto FreeNginx 1.30.0, que desenvolve um fork do Nginx. O desenvolvimento do fork é conduzido por Maxim Dunin, um dos principais desenvolvedores do Nginx. O FreeNginx é posicionado como um projeto sem fins lucrativos, que assegura o desenvolvimento da base de código do Nginx sem interferência corporativa. O código do FreeNginx continua sendo fornecido sob a licença BSD. Entre as mudanças na ramificação FreeNginx 1.30: suporte ao reconhecimento de extensão TLS ECH (Encrypted Client Hello); melhorias na manipulação da diretiva limit_rate; adição das diretivas send_min_rate e client_body_min_rate; implementação da capacidade de limitar o número de conexões e a intensidade das solicitações no proxy de email; suporte à base de dados GeoIP2 no módulo GeoIP; aprimoramento da proteção do módulo XSLT.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster