BLOG | NGINX

Anunciando o NGINX Plus R11

NGINX-Parte-de-F5-horiz-preto-tipo-RGB
Miniatura de Owen Garrett
Owen Garrett
Publicado em 25 de outubro de 2016

Temos o prazer de anunciar a disponibilidade do NGINX Plus Release 11 (R11) . Com esta versão, estamos fornecendo uma série de novos recursos no NGINX Plus para tornar o produto mais fácil de estender e personalizar, além de oferecer suporte a uma gama ainda maior de implantações.

O NGINX Plus R11 apresenta compatibilidade binária para módulos dinâmicos . Isso significa que módulos dinâmicos que foram compilados no NGINX Open Source podem ser carregados no NGINX Plus.

Você pode aproveitar o grande número de módulos NGINX de terceiros para estender e adicionar funcionalidades ao NGINX Plus, aproveitando uma variedade de módulos de código aberto e produzidos comercialmente. Os desenvolvedores podem criar extensões personalizadas, complementos e novos produtos com base no núcleo NGINX Plus compatível.

O NGINX Plus R11 também adiciona uma série de outras melhorias:

  • Balanceamento de carga TCP/UDP aprimorado – Novos recursos incluem roteamento de nome de servidor SSL, nova funcionalidade de registro, variáveis adicionais e suporte aprimorado ao protocolo PROXY. Esses novos recursos aprimoram os recursos de depuração e permitem que você ofereça suporte a uma gama mais ampla de aplicativos empresariais.
  • Melhor geolocalização por endereço IP – O módulo GeoIP2 de terceiros agora é certificado e fornecido aos clientes do NGINX Plus. Esta nova versão fornece detalhes de localização mais ricos e localizados do que o módulo GeoIP original.
  • Módulo NGINX JavaScript aprimorado – NGINX JavaScript é a linguagem de configuração de última geração para NGINX Plus, baseada em JavaScript. Novos recursos permitem que você modifique dados de solicitação e resposta rapidamente no módulo Stream (TCP/UDP).

 

NGINX Plus R11 em detalhes

Compatibilidade binária para módulos dinâmicos

A comunidade NGINX desenvolveu uma ampla gama de extensões de módulos para o NGINX Open Source – soluções de segurança, módulos de autenticação e até mesmo ambientes de execução de aplicativos completos, como Lua .

Nós construímos e mantemos alguns desses módulos de terceiros para o NGINX Plus, atualizando-os a cada lançamento e distribuindo-os por meio do nosso repositório NGINX Plus. Essas compilações são certificadas para funcionar corretamente com o NGINX Plus e nossa equipe de suporte fornece suporte técnico de instalação e configuração básica.

Com a versão R11, agora você pode compilar quaisquer módulos de terceiros compatíveis com a versão correspondente do NGINX Open Source e, em seguida, carregar esses módulos com segurança no NGINX Plus.

Cada versão do NGINX Plus é construída sobre uma versão do NGINX Open Source . Execute nginx -v para determinar o número da versão de código aberto correspondente; para NGINX Plus R11 , é NGINX 1.11.5.

$ nginx -v versão nginx: nginx/1.11.5 (nginx-plus-r11)

Para compilar módulos dinâmicos, primeiro você obtém o código-fonte do NGINX no qual sua versão do NGINX Plus é baseada (aqui, nginx-1.11.5 para NGINX Plus R11 ):

$ wget https://nginx.org/download/nginx-1.11.5.tar.gz $ tar -xzvf nginx-1.11.5.tar.gz

Em seguida, execute o comando configure com o novo argumento --with-compat para criar um ambiente de compilação padrão compatível com o NGINX Plus:

$ cd nginx-1.11.5 $ ./configure --with-compat --add-dynamic-module=/caminho/para/o/módulo $ make módulos

Para obter mais detalhes sobre como compilar seus próprios módulos para operação com o NGINX Plus, consulte Compilando módulos dinâmicos para o NGINX Plus<.htmla> em nosso blog.

Os módulos que você compila (módulos da comunidade, módulos fornecidos por parceiros terceirizados e módulos personalizados) não são testados ou suportados pelo NGINX. Se você buscar suporte técnico para um problema, a equipe de suporte técnico do NGINX pode pedir que você remova um módulo sem suporte e reproduza a falha como parte do nosso processo de suporte técnico, para que eles possam verificar se a falha é ou não causada pelo módulo sem suporte.

Balanceamento de carga TCP/UDP aprimorado

O NGINX Plus R11 oferece suporte a uma gama mais ampla de aplicativos com melhorias importantes no balanceamento de carga TCP e UDP .

Roteamento de nome do servidor SSL

Agora você pode usar o balanceador de carga TCP/UDP do NGINX Plus para balancear a carga de conexões SSL/TLS sem descriptografá-las. Isso é útil em um ambiente seguro ou de alto tráfego, onde você deseja encaminhar conexões criptografadas SSL/TLS para um servidor remoto.

Com o novo recurso de pré-leitura de nome de servidor SSL, o NGINX Plus R11 pode inspecionar cada conexão SSL/TLS de entrada e determinar o domínio de destino (como o valor de Indicação de Nome do Servidor [SNI]) para o qual rotear a conexão.

O nome do servidor SSL é fornecido na nova variável $ssl_preread_server_name . Ele contém o nome do host de destino, conforme extraído do campo SNI do handshake SSL/TLS.

Você pode usar a variável como argumento para a diretiva proxy_pass ou como um campo no log de acesso do servidor virtual. Observe que para habilitar esse recurso você deve incluir a diretiva ssl_preread na configuração, conforme mostrado neste exemplo:

Suporte para registro de acesso

O novo módulo Stream Log no NGINX Plus R11 fornece o mesmo tipo de registro de acesso para conexões TCP/UDP que estava disponível em versões anteriores para conexões HTTP. Agora você pode registrar cada sessão TCP/UDP processada pelo módulo Stream , inspecionando taxas de dados, decisões de balanceamento de carga, condições de erro e assim por diante. Este é um recurso vital ao depurar ou auditar transações TCP ou UDP.

O módulo Stream expõe um grande número de variáveis e todas elas podem ser registradas. Você pode personalizar o formato de log padrão usando variáveis da seguinte maneira:

Suporte aprimorado ao protocolo PROXY

Esta versão torna nosso suporte ao protocolo PROXY para conexões TCP mais abrangente, permitindo que o NGINX Plus aceite conexões TCP aprimoradas usando o protocolo PROXY.

Esse recurso melhora sua capacidade de gerenciar conexões TCP com o NGINX Plus, porque você pode determinar o verdadeiro endereço IP de origem da conexão para fins de registro ou autenticação.

Métricas de status estendidas adicionais

O módulo Status agora relata mais métricas na categoria de fluxo , incluindo contagens do número de sessões manipuladas e contagens de várias condições de erro.

Junto com o novo comando access_log no módulo Stream Log, as métricas adicionais facilitam o monitoramento do comportamento dos serviços TCP e UDP e detectam quando há uma taxa inesperada de erros.

[Editor – O módulo Status foi descontinuado e substituído pelo módulo NGINX Plus API , que foi introduzido no NGINX Plus R13 .

Módulo GeoIP2 para melhor geolocalização

O módulo GeoIP2 de terceiros agora está certificado e disponível para usuários do NGINX Plus em nosso repositório. O módulo GeoIP2 usa os bancos de dados no formato MaxMind GeoIP2, que fornecem nomes localizados e são mais ricos em detalhes do que os usados pelo módulo GeoIP original.

Para obter o novo módulo, execute estes comandos (apropriados para Debian e Ubuntu):

$ apt-get atualização $ apt-get instalar nginx-plus-module-geoip2

No contexto principal (nível superior) em /etc/nginx/nginx.conf , adicione uma diretiva load_module para o módulo recém-instalado:

Para mais informações sobre o módulo GeoIP2, consulte a página oficial do GitHub .

Melhorias no módulo JavaScript NGINX

Editor – O caso de uso a seguir é apenas um entre muitos para o módulo NGINX JavaScript. Para obter a lista de todos os casos de uso, consulte Casos de uso para o módulo JavaScript NGINX .

Esta postagem foi atualizada para usar o objeto de sessão(ões) refatorado( s ) para o módulo Stream, que foi introduzido no NGINX JavaScript 0.2.4 .

NGINX JavaScript é a linguagem de configuração de última geração para NGINX e NGINX Plus. Com o NGINX JavaScript, você pode usar a sintaxe JavaScript familiar para executar operações mais complexas do que as possíveis com a linguagem de configuração padrão do NGINX. Esta versão inclui uma série de melhorias no módulo JavaScript do NGINX.

O JavaScript do NGINX ainda é um trabalho em andamento e as atualizações na versão apontam para a funcionalidade final planejada. Neste marco, nos concentramos em duas áreas: integração com o módulo Stream e suporte mais amplo à linguagem JavaScript.

No módulo Stream, o NGINX JavaScript pode acessar várias fases de processamento de solicitações internas para inspecionar e modificar dados. Por exemplo, o seguinte código JavaScript NGINX ilustra como inspecionar a terceira mensagem em um fluxo de protocolo MySQL e procurar padrões de chave para identificar a operação SQL:

O suporte à linguagem principal JavaScript do NGINX foi consideravelmente ampliado, com suporte para mais objetos e funções integrados. As atualizações são compartilhadas no repositório de origem do Mercurial e por meio do repositório de pacotes NGINX Plus.

Desempenho de cache aprimorado

O NGINX Plus opera um processo de gerenciador de cache separado que é responsável por podar o cache de disco. Em determinadas circunstâncias, o gerenciador de cache pode precisar excluir um grande número de arquivos, por exemplo, quando uma grande quantidade de memória precisa ser recuperada.

Com o novo recurso de ‘desvinculação de limitação’, você pode especificar uma taxa máxima de exclusão para arquivos em cache. Uma taxa menor pode reduzir a carga no disco subjacente e, portanto, melhorar o desempenho do sistema.

A taxa de exclusão é controlada pelos novos parâmetros manager_files , manager_threshold e manager_sleep para as diretivas proxy_cache_path , fastcgi_cache_path , scgi_cache_path e uwsgi_cache_path .

Atualize ou experimente o NGINX Plus

Se você estiver executando o NGINX Plus, recomendamos que atualize para a versão 11 quando for conveniente. Você aprenderá uma série de correções e melhorias, e isso nos ajudará a ajudar você caso precise abrir um tíquete de suporte. Instruções de instalação e atualização podem ser encontradas no portal do cliente .

Observação:  Conforme anunciado anteriormente , o NGINX Plus R11 e versões posteriores não incluem o pacote nginx-plus-extras . Se você ainda estiver usando esse pacote, deverá implantar o pacote nginx-plus e carregar dinamicamente os módulos adicionais necessários do repositório de módulos NGINX Plus.

Se você ainda não experimentou o NGINX Plus , recomendamos que experimente para aceleração web, balanceamento de carga e entrega de aplicativos, ou como um servidor web totalmente suportado com APIs aprimoradas de monitoramento e gerenciamento . Você pode começar hoje mesmo com uma avaliação gratuita de 30 dias e ver por si 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."