Temos o prazer de anunciar que o NGINX Plus Release 21 (R21) já está disponível. Baseado no NGINX Open Source, o NGINX Plus é o único balanceador de carga, cache de conteúdo, servidor web e gateway de API tudo-em-um . Com mais de 450 milhões de sites confiando no NGINX , o NGINX Plus R21 está mais confiável e seguro do que nunca, com foco principal em correções de bugs e melhorias de estabilidade do NGINX Open Source.
Os novos recursos do NGINX Plus R21 incluem:
de host
.Software eficiente e qualidade de código são princípios centrais de como construímos o NGINX, tanto o de código aberto quanto o NGINX Plus.
A equipe NGINX emprega todas as ferramentas modernas de CI/CD e testes automatizados que você espera de qualquer software comercial. Testes diários do ramo de desenvolvimento ativo mostram uma “densidade de defeitos” notavelmente baixa de apenas 0,01 defeitos por 1000 linhas de código, em comparação com uma densidade média de 0,7 defeitos por 1000 linhas para bases de código de tamanho semelhante.
Também encomendamos testes de penetração externos e independentes e revisões de código para componentes de código aberto e NGINX Plus. Os testes de penetração e revisões de código mais recentes identificaram vários problemas que são abordados nesta versão.
No total, o NGINX Plus R21 inclui correções para 14 bugs:
aio
494
foi devolvido em vez de400
quando erros com código494
foram redirecionados com a diretiva error_page
de reescrita
com uma string de substituição vaziabreak
foi usada em conjunto com a diretiva alias
ou em conjunto com a diretiva proxy_pass
com um URITransfer-Encoding
foi processadodo local
pode conter lixo se o URI da solicitação foi reescrito para um que contém um caractere nuloerror_page
debug_points
ao usar HTTP/2Observe que nenhum desses bugs foi crítico e não há registros CVE associados.
No momento deste lançamento, estamos trabalhando duro em nosso roteiro para 2020. Ainda este ano, esperamos disponibilizar uma implementação de nível de produção do HTTP/3 (também conhecido como QUIC). Se você estiver interessado em acompanhar ou testar essa tecnologia, fique atento aos patches experimentais nas próximas semanas.
O NGINX Plus R15 introduziu suporte para roteamento e balanceamento de carga de tráfego gRPC para grupos upstream. Você pode aproveitar o NGINX Plus para rotear o tráfego gRPC incluindo a diretiva grpc_pass
.
O NGINX Plus R21 introduz suporte a variáveis na diretiva grpc_pass
para fornecer políticas de roteamento dinâmicas e orientadas por API que se estendem às cargas de trabalho gRPC. Isso possibilita atender casos de uso como:
A configuração a seguir é um exemplo de implementação de roteamento de depuração.
Na linha 1, definimos um armazenamento de chave-valor que pode usar intervalos de rede como a chave (habilitado pelo parâmetro type=ip
). A linha 2 especifica que a variável $greeter_upstream
é avaliada executando uma pesquisa no armazenamento de chave-valor grpc-greeter , usando o endereço IP do cliente ( $remote_addr
) como a chave.
Na linha 10, especificamos grpc://$greeter_upstream
como o parâmetro para a diretiva grpc_pass
, para terminação TLS e roteamento dinâmico de solicitações gRPC com base na sub-rede IP do cliente.
Por exemplo, você pode executar o seguinte comando na instância do NGINX Plus para rotear solicitações originadas da sub-rede 192.168.80.0/24 para grpc-servers-greeter-debug :
$ curl -iX POST -d '{"192.168.80.0/24":"grpc-servers-greeter-debug"}' http://localhost:8080/api/6/http/keyvals/grpc-greeter
Para alternar o tráfego gRPC para o grupo de serviços de produção ( grpc-servers-greeter-prod ), execute o seguinte comando:
$ curl -iX PATCH -d '{"192.168.80.0/24":"grpc-servers-greeter-prod"}' https://localhost:8080/api/6/http/keyvals/grpc-greeter
O módulo JavaScript NGINX (njs) foi atualizado para a versão 0.3.9 com diversas correções de bugs e algumas melhorias funcionais relacionadas a sub-solicitações e suporte ao sistema de arquivos.
A função r.subrequest
permite que o código njs faça solicitações HTTP assíncronas para qualquer URI. Isso tem muitos casos de uso possíveis, um exemplo notável sendo chamadas de API para um servidor de autenticação externo, por exemplo, introspecção de token OAuth 2.0 . Esta versão traz duas melhorias significativas para sub-solicitações: promessas e sub-solicitações desanexadas.
[ Editor – Os dois casos de uso de exemplo a seguir são apenas alguns dos muitos para o módulo JavaScript NGINX. Para uma lista completa, consulte Casos de uso para o módulo JavaScript NGINX . ]
As sub-solicitações geralmente incluem uma função de retorno de chamada que processa a resposta da sub-solicitação. Uma função de retorno de chamada agora pode ser omitida, usando promessas JavaScript como uma forma de processar respostas em linha com o código de chamada. O exemplo a seguir ilustra como sub-solicitações sucessivas podem ser encadeadas em uma única sequência de código sem usar retornos de chamada.
Sub-solicitações são assíncronas e, anteriormente, elas tinham que ser invocadas a partir de uma diretiva js_content
. Agora, sub-solicitações também podem ser acionadas a partir de uma diretiva js_set
durante a avaliação de variáveis. Essas sub-solicitações “desanexadas” ainda funcionam de forma assíncrona, mas não retornam nenhum dado para a função de chamada, e qualquer resposta é ignorada.
O código de exemplo a seguir usa sub-solicitações desanexadas para enviar uma cópia dos cabeçalhos de solicitação para um sistema de gerenciamento de eventos e informações de segurança ( SIEM ) se a quantidade total de dados trocados exceder 1 MB.
[ Editor – A configuração a seguir foi atualizada para usar a diretiva js_import
, que substituiu a diretiva js_include
no NGINX Plus R23<.htmla>. Para obter mais informações, consulte a documentação de referência do módulo NGINX JavaScript – a seção Configuração de exemplo mostra a sintaxe correta para a configuração do NGINX e arquivos JavaScript.]
O código JavaScript é então executado na fase de log, solicitando a avaliação de variáveis quando escrevemos o log de acesso.
O objeto fs
do sistema de arquivos JavaScript foi aprimorado para oferecer suporte a promessas de operações assíncronas. Além disso, há novos métodos de sistema de arquivos: access()
, realpath()
, symlink()
e unlink()
.
Se você estiver executando o NGINX Plus, recomendamos fortemente que atualize para o NGINX Plus R21 o mais rápido possível. Você também receberá uma série de correções e melhorias adicionais, e isso ajudará o NGINX a ajudar você quando precisar abrir um tíquete de suporte.
Revise cuidadosamente os novos recursos e mudanças de comportamento descritos nesta postagem do blog antes de prosseguir com a atualização.
Se você ainda não experimentou o NGINX Plus, recomendamos que experimente – para segurança, balanceamento de carga e gateway de API, ou como um servidor web totalmente suportado com APIs aprimoradas de monitoramento e gerenciamento. Você pode começar hoje mesmo com um teste gratuito de 30 dias . Veja você mesmo como o NGINX Plus pode ajudar você a entregar e dimensionar seus aplicativos.
"Esta postagem do blog pode fazer referência a produtos que não estão mais disponíveis e/ou não têm mais suporte. Para obter as informações mais atualizadas sobre os produtos e soluções F5 NGINX disponíveis, explore nossa família de produtos NGINX . O NGINX agora faz parte do F5. Todos os links anteriores do NGINX.com redirecionarão para conteúdo semelhante do NGINX no F5.com."