Anunciando o NGINX Plus R11

NGINX | 25 de outubro de 2016

Temos o prazer de anunciar a disponibilidade do NGINX Plus Release 11 (R11). Com esta versão, estamos disponibilizando diversos novos recursos no NGINX Plus para facilitar a extensão e a personalização do produto, além de oferecer suporte a uma variedade ainda maior de implantações.

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

Você pode aproveitar a grande variedade de módulos NGINX de terceiros para ampliar e adicionar funcionalidades ao NGINX Plus, utilizando diversos módulos de código aberto e comerciais. Os desenvolvedores podem criar extensões personalizadas, complementos e novos produtos com base no núcleo compatível do NGINX Plus.

O NGINX Plus R11 também inclui várias outras melhorias:

  • Balanceamento de carga TCP/UDP aprimorado – Os novos recursos incluem roteamento por nome de servidor SSL, novas funcionalidades de registro em log, variáveis adicionais e suporte aprimorado ao protocolo PROXY. Esses novos recursos melhoram os recursos de depuração e permitem oferecer suporte a uma variedade maior de aplicações empresariais.
  • Melhor geolocalização por endereço IP – O módulo GeoIP2 de terceiros agora é certificado e disponibilizado aos clientes do NGINX Plus. Essa nova versão fornece detalhes de localização mais completos e localizados do que o módulo GeoIP original.
  • Módulo JavaScript do NGINX aprimorado – O NGINX JavaScript é a linguagem de configuração de última geração do NGINX Plus, baseada em JavaScript. Os novos recursos permitem modificar dinamicamente os dados de solicitação e resposta 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 variedade de extensões de módulos para o NGINX Open Source – soluções de segurança, módulos de autenticação e até ambientes completos de execução de aplicações, como Lua.

Desenvolvemos e mantemos alguns desses módulos de terceiros para o NGINX Plus, atualizando-os a cada versão e distribuindo-os por meio do nosso repositório do NGINX Plus. Essas compilações são certificadas para funcionar corretamente com o NGINX Plus, e nossa equipe de suporte oferece assistência técnica para instalação e configuração básica.

Com a versão R11, agora você pode compilar qualquer módulo de terceiros compatível 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 é desenvolvida com base em uma versão do NGINX Open Source. Execute nginx -v para determinar o número da versão de código aberto correspondente; para o NGINX Plus R11, é a NGINX 1.11.5.

$ nginx -vnginx version: nginx/1.11.5 (nginx-plus-r11)

Para compilar módulos dinâmicos, primeiro obtenha o código-fonte do NGINX no qual sua versão do NGINX Plus se baseia (neste caso, nginx-1.11.5 para o 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=/path/to/module
$ make modules

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

Os módulos que você mesmo compila (módulos da comunidade, módulos fornecidos por parceiros terceirizados e módulos personalizados) não são testados nem recebem suporte da NGINX. Se você solicitar suporte técnico para um problema, a equipe de suporte técnico da NGINX poderá pedir que você remova um módulo não compatível e reproduza a falha como parte do nosso processo de suporte técnico, para que possa verificar se a falha é ou não causada pelo módulo não compatível.

Balanceamento de carga TCP/UDP aprimorado

O NGINX Plus R11 oferece suporte a uma variedade maior de aplicações, com melhorias importantes no balanceamento de carga TCP e UDP.

Roteamento por nome de servidor SSL

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

Com o novo recurso de leitura antecipada do nome do servidor SSL, o NGINX Plus R11 pode inspecionar cada conexão SSL/TLS recebida e determinar o domínio de destino (como o valor de Server Name Indication [SNI]) para o qual encaminhar a conexão.

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

Você pode usar a variável como argumento da 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:

Carregando exemplo de código…

Suporte ao registro de acesso

O novo módulo Stream Log do NGINX Plus R11 oferece para conexões TCP/UDP o mesmo tipo de registro de acesso que já 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, analisando taxas de dados, decisões de balanceamento de carga, condições de erro e muito mais. Esse é um recurso essencial para depurar ou auditar transações TCP ou UDP.

O módulo Stream disponibiliza 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:

Carregando exemplo de código…

Suporte aprimorado ao protocolo PROXY

Esta versão amplia nosso suporte ao protocolo PROXY para conexões TCP, permitindo que o NGINX Plus aceite conexões TCP aprimoradas com o uso do protocolo PROXY.

Esse recurso aprimora sua capacidade de gerenciar conexões TCP com o NGINX Plus, pois permite determinar o verdadeiro endereço IP de origem da conexão para fins de registro em log ou autenticação.

Métricas adicionais de status estendido

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

Juntamente 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 a detecção de taxas de erro inesperadas.

[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 uma geolocalização mais precisa

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

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

$ apt-get update$ apt-get install 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:

Carregando exemplo de código…

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

Aprimoramentos no módulo JavaScript do NGINX

Editor – O caso de uso a seguir é apenas um dos muitos disponíveis para o módulo JavaScript do NGINX. Para ver a lista completa de casos de uso, consulte Casos de uso do módulo JavaScript do NGINX.

Esta publicação foi atualizada para usar o objeto de sessão (s) refatorado do módulo Stream, introduzido no NGINX JavaScript 0.2.4.

O NGINX JavaScript é a linguagem de configuração de última geração para o NGINX e o NGINX Plus. Com o NGINX JavaScript, você pode usar a conhecida sintaxe do JavaScript para realizar operações mais complexas do que as permitidas pela linguagem de configuração padrão do NGINX. Esta versão inclui diversas melhorias no módulo NGINX JavaScript.

O NGINX JavaScript ainda está em desenvolvimento, e as atualizações desta versão apontam para a funcionalidade final planejada. Neste marco, concentramos nossos esforços 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 internas do processamento de solicitações para inspecionar e modificar dados. Por exemplo, o código NGINX JavaScript a seguir mostra como inspecionar a terceira mensagem em um fluxo do protocolo MySQL e procurar padrões-chave para identificar a operação SQL:

Carregando exemplo de código…

O suporte principal do NGINX JavaScript à linguagem foi consideravelmente ampliado, passando a oferecer suporte a mais objetos e funções integrados. As atualizações são disponibilizadas no repositório de código-fonte do Mercurial e por meio do repositório de pacotes do NGINX Plus.

Desempenho de cache aprimorado

O NGINX Plus executa um processo separado de gerenciador de cache responsável por limpar o cache em disco. Em determinadas circunstâncias, o gerenciador de cache pode precisar excluir um grande número de arquivos, por exemplo, quando é necessário recuperar uma grande quantidade de memória.

Com o novo recurso de “limitação de desvinculação”, você pode especificar uma taxa máxima de exclusão de arquivos armazenados em cache. Uma taxa menor pode reduzir a carga sobre o disco subjacente e, assim, melhorar o desempenho do sistema.

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

Atualize ou experimente o NGINX Plus

Se você estiver usando o NGINX Plus, recomendamos que faça a atualização para a versão 11 quando for conveniente. Você terá acesso a diversas correções e melhorias, além de facilitar nosso atendimento caso precise abrir um chamado de suporte. As instruções de instalação e atualização estão disponíveis 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 usa esse pacote, deverá implantar o pacote nginx-plus e carregar dinamicamente os módulos adicionais necessários do repositório de módulos do NGINX Plus.

Se você ainda não experimentou o NGINX Plus, recomendamos que o teste para aceleração da Web, balanceamento de carga e entrega de aplicações, ou como um servidor Web com suporte completo e APIs avançadas de monitoramento e gerenciamento. Comece hoje mesmo com uma avaliação gratuita de 30 dias e veja por si mesmo como o NGINX Plus pode ajudar você a disponibilizar e escalar suas aplicações.


Compartilhar

Sobre o autor

Owen Garrett
Owen GarrettDiretor Sênior de Gestão de Produtos

Mais publicações de Owen Garrett

Publicações relacionadas no blog

Como o F5 NGINX One aprimora o gerenciamento e a observabilidade
NGINX | 10/10/2024

Como o F5 NGINX One aprimora o gerenciamento e a observabilidade

Descubra como o F5 NGINX One aprimora o gerenciamento e a observabilidade de ambientes híbridos e multicloud ao oferecer um console web centralizado baseado em SaaS, com insights em tempo real, conformidade automatizada e gerenciamento simplificado de configurações.

Do OpenAPI ao NGINX como gateway de API usando uma API declarativa
NGINX | 17/06/2024

Do OpenAPI ao NGINX como gateway de API usando uma API declarativa

Descubra como transformar uma definição de esquema OpenAPI em uma configuração NGINX totalmente funcional, operando como um API Gateway com a segurança de um Web Application Firewall e um Portal do Desenvolvedor, usando uma abordagem declarativa de API.

Como gerenciar picos repentinos de tráfego e sobrecarga do servidor
NGINX | 14/07/2021

Como gerenciar picos repentinos de tráfego e sobrecarga do servidor

Picos de tráfego e sobrecarga de servidores são preocupações sérias para varejistas online em qualquer época, mas especialmente durante a “Cyber Season” de compras de fim de ano. Detalhamos como você pode aproveitar as soluções de entrega de aplicações de nível de produção da NGINX para se preparar para aumentos repentinos de tráfego.

Distribuição segura de chaves privadas SSL com o NGINX
NGINX | 02/04/2019

Distribuição segura de chaves privadas SSL com o NGINX

Descrevemos três maneiras progressivamente mais seguras de proteger chaves privadas SSL ao configurar o NGINX para processar tráfego HTTPS: permitir acesso de leitura apenas ao usuário root, criptografar as chaves com senhas armazenadas separadamente e distribuir as senhas a partir de um repositório central.

Agrupando solicitações de API em lotes com NGINX Plus e o módulo JavaScript do NGINX
NGINX | 24/05/2018

Agrupando solicitações de API em lotes com NGINX Plus e o módulo JavaScript do NGINX

O módulo JavaScript do NGINX lançado com o NGINX Plus R15 oferece suporte a subsolicitações, possibilitando uma classe totalmente nova de casos de uso para o NGINX Plus. Este exemplo completo também usa a API do NGINX Plus e os módulos de chave-valor para converter solicitações de API dos clientes em solicitações separadas para as APIs dos microsserviços que compõem um aplicativo.

Como superar o esgotamento de portas efêmeras no NGINX e no NGINX Plus
NGINX | 19/04/2016

Como superar o esgotamento de portas efêmeras no NGINX e no NGINX Plus

Confira dicas para evitar o esgotamento de portas efêmeras com ajustes no kernel do Linux, conexões keepalive e conexões vinculadas dinamicamente a endereços IP locais.