Foi lançado o branch principal do nginx 1.21.2, dentro do qual continua o desenvolvimento de novos recursos (no branch estável 1.20 com suporte paralelo, apenas são feitas alterações relacionadas à eliminação de erros graves e vulnerabilidades).
Grandes mudanças:
- Solicitações HTTP/1.0 que incluem o cabeçalho HTTP “Transfer-Encoding” são bloqueadas (apareceu na versão do protocolo HTTP/1.1).
- O suporte para conjunto de cifras de exportação foi descontinuado.
- A compatibilidade com a biblioteca OpenSSL 3.0 é garantida.
- Implementada a transferência dos cabeçalhos “Auth-SSL-Protocol” e “Auth-SSL-Cipher” para o servidor de autenticação proxy de correio.
- A API de filtragem do corpo da solicitação permite o armazenamento em buffer dos dados processados.
- Ao carregar certificados de servidor, foi ajustado o uso dos níveis de segurança suportados a partir do OpenSSL 1.1.0 e especificados através do parâmetro “@SECLEVEL=N” na diretiva ssl_ciphers.
- Foram corrigidos travamentos que ocorriam ao criar uma conexão SSL com back-ends no stream e nos módulos gRPC.
- O problema de gravar o corpo da solicitação em disco ao usar HTTP/2, na ausência do cabeçalho “Content-Length” na solicitação, foi resolvido.
Ao mesmo tempo, foi lançado o njs 0.6.2, 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, os métodos Promise.all(), Promise.allSettled(), Promise.any() e Promise.race() foram adicionados à implementação do Promise. Suporte implementado para o objeto AggregateError.
Fonte: opennet.ru