Foi lançada a ramificação principal do nginx 1.25.5, dentro da qual continua o desenvolvimento de novos recursos. O branch estável 1.24.x mantido em paralelo contém apenas alterações relacionadas à eliminação de bugs e vulnerabilidades graves. No futuro, com base no branch principal 1.25.x, um branch estável 1.26 será formado. O código do projeto é escrito em C e distribuído sob a licença BSD.
Entre as mudanças:
- Foi adicionado suporte para servidores virtuais ao módulo stream, cuja configuração é definida no bloco “server {...}” usando a diretiva server_name. servidor { nome_servidor ~^(www\.)?(.+)$; proxy_pass www.$2:12345; }
- Um novo módulo ngx_stream_pass_module foi adicionado, projetado para encaminhar conexões recebidas diretamente para qualquer soquete de escuta associado a módulos como http, stream e mail. stream {servidor {ouvir 12345 ssl; domínio ssl_certificate.crt; ssl_certificate_key domínio.key; passe 127.0.0.1:8000; } }
- A diretiva listen do módulo stream implementa suporte para os parâmetros “deferred” (permite aceitação diferida), “accept_filter” (filtro de conexão de entrada aplicado antes de chamar a função de aceitação) e “setfib” (definição da tabela de roteamento).
- Para algumas arquiteturas, foi implementado suporte para determinar o tamanho do bloco (linha de cache) usado para transferir dados entre o cache da CPU e a memória.
- Nos sistemas Apple Silicon, foi adicionado suporte para o gerenciador de pacotes Homebrew.
- Problemas de compilação cruzada para Windows foram resolvidos.
- Corrigido um bug que fazia com que as conexões fossem fechadas ao usar o modo 0-RTT no protocolo QUIC.
Adicionalmente, podemos notar a publicação de uma versão estável do projeto FreeNginx 1.26.0, que desenvolve um fork do Nginx. O fork está sendo desenvolvido por Maxim Dunin, um dos principais desenvolvedores do Nginx. O FreeNginx está posicionado como um projeto sem fins lucrativos que fornece o desenvolvimento da base de código Nginx sem interferência corporativa. A versão 1.26.0 é marcada como uma versão estável, incorporando alterações e correções dos lançamentos do ramo principal do Nginx 1.25. Entre outras coisas, o FreeNginx 1.26.0 inclui suporte experimental para o protocolo HTTP/3, melhorias para combater ataques DoS e correções relacionadas ao processamento de E/S assíncrono.
Ao mesmo tempo, foi lançado o njs 0.8.4, um interpretador JavaScript para o servidor web nginx. O interpretador njs implementa padrões ECMAScript e permite expandir a capacidade do nginx de processar solicitações usando scripts na configuração. Os scripts podem ser usados em um arquivo de configuração para definir lógica avançada para processar solicitações, gerar uma configuração, gerar dinamicamente uma resposta, modificar uma solicitação/resposta ou criar stubs rapidamente para resolver problemas em aplicações web. Na nova versão: suporte para o mecanismo JavaScript QuickJS foi adicionado à CLI; adicionou a capacidade de definir o cabeçalho do servidor; Implementada uma verificação de duplicação de variáveis definidas via js_set.
Fonte: opennet.ru