A NGINX, Inc. tem o orgulho de anunciar a disponibilidade do NGINX Plus Release 9 (R9), a versão mais recente da nossa plataforma de entrega de aplicações. Esta atualização oferece dois novos recursos importantes: a capacidade de carregar dinamicamente extensões avançadas no NGINX Plus sem a necessidade de binários personalizados e o balanceamento de carga UDP com suporte comercial juntamente com nossos recursos existentes de balanceamento de carga TCP e HTTP.
Além das novas e empolgantes funcionalidades do NGINX Plus R9, estamos lançando novas opções de preços e suporte. O NGINX Plus agora está disponível por meio de um modelo de preços “all you can eat”, que permite uso ilimitado em toda a sua aplicação ou empresa por um preço fixo. O NGINX Plus agora também pode ser adquirido com três níveis diferentes de suporte: suporte Basic 9×5 para aplicações que não estão em produção, suporte Professional 24×7 por telefone ou e-mail e suporte Enterprise 24×7, com garantia de resposta em até 30 minutos.
Editor – Para obter mais detalhes sobre os principais novos recursos do NGINX Plus R9, consulte estes recursos relacionados.
- Balanceamento de carga do tráfego DNS com NGINX e NGINX Plus
- Como usar o DNS para descoberta de serviços com o NGINX e o NGINX Plus
- Descoberta de serviços para NGINX Plus usando registros DNS SRV do Consul
- Novidades do NGINX Plus R9 (webinar sob demanda)
Os principais novos recursos do NGINX Plus R9 são:
- Módulos dinâmicos – O NGINX Plus agora pode ser estendido em tempo de execução com módulos carregáveis dinamicamente. Isso significa que você pode selecionar apenas as extensões desejadas e instalá-las diretamente do repositório do NGINX Plus, acessível por meio dos comandos padrão
apteyum. Com o tempo, distribuiremos um conjunto cada vez maior de extensões testadas e totalmente certificadas para o nosso software. Os módulos mais populares desenvolvidos pela NGINX e por terceiros, como o suporte à linguagem de programação Lua, já foram convertidos para o novo formato carregável dinamicamente. Também publicamos instruções para proprietários de módulos de terceiros sobre como converter seus módulos para o novo formato, o que é necessário para que eles possam ser adicionados ao nosso repositório. - Balanceamento de carga UDP – Com a adição do balanceamento de carga UDP aos recursos existentes de balanceamento de carga TCP e HTTP, o NGINX Plus agora pode balancear a carga de praticamente qualquer aplicação. No mês passado, adicionamos o balanceamento de carga UDP no NGINX Open Source e, com esta versão, estamos estendendo o suporte ao NGINX Plus com recursos avançados adicionais. O NGINX Plus monitora serviços UDP com verificações ativas de integridade, oferece visibilidade essencial por meio de uma grande variedade de estatísticas e permite adicionar e remover servidores dinamicamente. O UDP é comumente usado em protocolos leves que não são transacionais por natureza, como DNS (resolução de nomes de domínio em endereços), syslog (registro leve de logs) e RADIUS (um protocolo de autenticação). O UDP também está se tornando um dos protocolos preferidos para aplicações de IoT devido aos seus baixos requisitos de largura de banda. O NGINX Plus pode distribuir e balancear a carga dessas aplicações existentes e novas com facilidade.
- Descoberta de serviços usando registros
SRVde DNS – Aplicações baseadas em microsserviços são dinâmicas: os serviços podem ser ampliados, reduzidos e movidos sob demanda. Uma boa maneira de acompanhar o estado atual dos seus serviços é usar a descoberta de serviços. Muitas plataformas de descoberta de serviços, como Consul e etcd (SkyDNS), oferecem uma interface DNS para que clientes (como o NGINX Plus) solicitem informações sobre os serviços descobertos. O número da porta usada pelos serviços costuma ser atribuído dinamicamente. Por isso, as plataformas de descoberta de serviços usam registrosSRVde DNS, que incluem informações sobre o número da porta. Agora, o NGINX Plus oferece suporte a registrosSRVde DNS e pode usar solicitações DNS para consultar no registro de serviços a localização dos seus serviços, incluindo informações sobre portas atribuídas dinamicamente. - Preços do NGINX Plus por aplicativo – Para garantir o máximo desempenho e disponibilidade durante períodos de alto crescimento, sazonalidade ou tráfego elástico, muitos aplicativos exigem uma infraestrutura dinâmica. Esses aplicativos também costumam usar microsserviços ou arquiteturas distribuídas, além de contêineres ou máquinas virtuais como ambiente de execução. Pagar pelo software por instância ou hora de uso da máquina não oferece a flexibilidade nem a relação custo-benefício exigidas por esses aplicativos modernos. Para esses casos de uso, estamos lançando os preços do NGINX Plus por aplicativo. Esse modelo oferece uso ilimitado dos recursos avançados e dos binários com suporte comercial do NGINX Plus por um preço fixo anual por aplicativo. Independentemente da quantidade de VMs, contêineres, nós, conexões simultâneas ou usuários, você paga uma única tarifa reduzida pelo ano inteiro. Implante o NGINX Plus quando, onde e como precisar na infraestrutura do seu aplicativo e nos ambientes de desenvolvimento, teste, homologação, recuperação de desastres e produção, sem se preocupar com cobranças imprevisíveis baseadas no consumo nem precisar esperar pela obtenção de chaves de licença quando for necessário aumentar repentinamente a capacidade.
Recursos do NGINX Plus R9 em detalhes
Esta seção apresenta uma visão geral detalhada de todos os novos recursos e funcionalidades do NGINX Plus R9.
Módulos dinâmicos
O NGINX e o NGINX Plus têm uma arquitetura modular. A funcionalidade principal de ambos pode ser ampliada por módulos desenvolvidos tanto por terceiros quanto pela equipe principal de engenharia do NGINX. Esses módulos adicionam funcionalidades importantes, como a incorporação de scripts Lua e a geolocalização de usuários com base no endereço IP. Há mais de 100 módulos de terceiros e mais de 60 módulos oficiais do NGINX disponíveis. Incluímos 56 deles no pacote básico nginx‑plus e outros 10 no pacote nginx‑plus‑extras (a lista completa está disponível em Especificações técnicas do NGINX Plus).

Com esta versão, os módulos adicionais do pacote nginx‑plus‑extras (tanto de terceiros quanto oficiais do NGINX) também podem ser carregados dinamicamente no pacote básico do NGINX Plus, nginx‑plus. Isso permite carregar apenas os módulos adicionais de que você realmente precisa.
Esses módulos estão disponíveis no repositório do NGINX Plus, e planejamos adicionar mais módulos ao repositório nos próximos meses. Recomendamos que todos que usam atualmente o pacote nginx‑plus‑extras migrem para o pacote principal nginx‑plus, pois o pacote nginx‑plus‑extras será descontinuado em uma versão futura.
Testamos cada módulo dinâmico carregando-o no núcleo do NGINX Plus antes de executar nossa ampla gama de testes de versão. Assim, podemos ter certeza de que, quando não está configurado, o módulo não interfere no funcionamento correto do NGINX Plus. Acompanharemos as atualizações dos módulos e disponibilizaremos novas compilações a cada versão e também caso um problema crítico de segurança seja relatado entre versões.
Os módulos dinâmicos nos permitem distribuir um único binário do NGINX Plus com as funcionalidades que todos utilizam. Assim, os administradores podem escolher os módulos adicionais que desejam usar.
Como carregar módulos dinâmicos no NGINX Plus
Para instalar e carregar módulos dinamicamente, siga as etapas abaixo. Elas pressupõem que você tenha configurado sua ferramenta de gerenciamento de pacotes para obter os arquivos da NGINX, Inc., em vez de usar a distribuição fornecida pelo fabricante do sistema operacional.
- Use a ferramenta padrão de gerenciamento de pacotes do seu sistema operacional (
aptouyum, por exemplo) para instalar a imagem base do nginx‑plus e os módulos que você deseja carregar dinamicamente (repita o comando de instalação para cada módulo). Os comandos a seguir são adequados para sistemas baseados no Debian.
# apt-get update# apt-get install nginx-plus
# apt-get install module-name- Os nomes que você pode usar no lugar de
module‑namenesta versão são: O diretório /etc/nginx/modules é criado automaticamente com links simbólicos para os locais de instalação dos arquivos .so dos módulos selecionados. Observações:nginx-plus-module-geoipnginx-plus-module-headers-morenginx-plus-module-image-filternginx-plus-module-luanginx-plus-module-passengernginx-plus-module-perlnginx-plus-module-rtmpnginx-plus-module-set-miscnginx-plus-module-xslt- Se você estiver usando o pacote nginx‑plus‑extras para uma versão anterior do NGINX Plus, será necessário removê-lo antes de instalar o pacote nginx‑plus R9. Para sistemas baseados em Debian, o conjunto de comandos apropriado é:
# apt-get update# apt-get remove nginx-plus-extras
# apt-get install nginx-plus
# apt-get install module-name- Alguns módulos não estão disponíveis para determinadas versões do sistema operacional devido a limitações do próprio sistema. Para obter mais detalhes e consultar as descrições dos módulos, consulte as Especificações técnicas do NGINX Plus.
- No contexto principal (nível superior) em /etc/nginx/nginx.conf, adicione uma diretiva
load_modulepara cada módulo que pode ser carregado dinamicamente:
load_module modules/module-name.so;- Verifique se a nova configuração é sintaticamente válida e recarregue o NGINX Plus.
# nginx -t && nginx -s reload- Os módulos listados em nginx.conf são carregados dinamicamente no NGINX Plus.
Balanceamento de carga UDP
No mês passado, lançamos o balanceamento de carga UDP no NGINX Open Source, e o NGINX Plus R9 amplia esse recurso com verificações de integridade, monitoramento de status estendido e reconfiguração dinâmica.

Assim como no balanceamento de carga TCP, a configuração do balanceamento de carga UDP fica no contexto stream. E, tal como nos balanceamentos de carga HTTP e TCP, o balanceamento de carga UDP usa um grupo de upstreams para definir o conjunto de servidores de origem que fornecem o serviço baseado em UDP e o algoritmo usado para balancear o tráfego entre os servidores.
A configuração também define um servidor virtual para cada porta UDP, com uma diretiva proxy_pass que especifica o grupo upstream que fornece o serviço associado:
stream { upstream dns_upstreams {
least_time;
server dns-server-1-ip:53;
server dns-server-2-ip:53;
}
server {
listen 53 udp;
listen 53; #tcp
proxy_pass dns_upstreams;
proxy_timeout 1s;
proxy_responses 1;
error_log logs/dns.log;
}
}Este exemplo de configuração destina-se ao balanceamento de carga de serviços DNS. No bloco upstream, configuramos o algoritmo Least Time para que o NGINX Plus envie cada solicitação ao servidor que, no momento, tenha o menor número de “conexões” e responda mais rapidamente. No bloco server, escutamos o tráfego UDP e TCP, pois o DNS pode operar em ambos os protocolos. A diretiva proxy_responses controla quantas respostas o NGINX Plus recebe do servidor upstream antes de liberar os recursos associados à “conexão” UDP. Como o DNS é um protocolo simples de solicitação e resposta, normalmente uma resposta é suficiente.
O NGINX Open Source inclui verificações básicas de integridade para UDP. Se um servidor UDP upstream não responder a uma solicitação dentro de um período de tempo limite definido ou retornar um erro ICMP, o NGINX e o NGINX Plus deixarão de enviar tráfego para ele por um período definido.
O NGINX Plus R9 adiciona verificações ativas de integridade para serviços UDP, semelhantes às usadas para tráfego HTTP e TCP. Você pode configurar o NGINX Plus para enviar solicitações UDP especiais aos servidores upstream e definir o tipo de resposta que os servidores devem retornar para serem considerados íntegros. Como o UDP não conta com os mecanismos de entrega confiável que o TCP oferece ao HTTP, as verificações ativas de integridade são ainda mais importantes para aplicações UDP do que para aplicações TCP e HTTP.
Com o NGINX Plus, você também pode adicionar ou remover servidores upstream dinamicamente. Isso facilita, por exemplo, retirar servidores de operação para manutenção e depois reinseri-los no pool com balanceamento de carga. As novas estatísticas relacionadas a UDP no módulo Status do NGINX Plus e no painel de monitoramento de atividades em tempo real oferecem visibilidade essencial sobre o desempenho dos seus servidores.
O NGINX Plus R9 faz o balanceamento de carga das aplicações simples baseadas em UDP mais usadas: DNS, RADIUS, syslog e NTP. Protocolos UDP de longa duração, como Voz sobre IP, e outras aplicações baseadas em SIP não são compatíveis no momento.
Descoberta de serviços usando registros DNS SRV Records
Os aplicativos web modernos são compostos por vários componentes pequenos — servidores web, servidores de aplicativos, bancos de dados e assim por diante. Um balanceador de carga de frontend, como o NGINX Plus, inspeciona o tráfego de entrada e, em seguida, encaminha e distribui as solicitações entre os componentes do aplicativo.
Quando os componentes de uma aplicação são implantados em plataformas virtuais ou baseadas em contêineres, eles podem ter endereços IP e portas imprevisíveis. Descoberta de serviços é o processo pelo qual um cliente local (como o balanceador de carga de frontend NGINX Plus) localiza esses componentes para poder enviar tráfego a eles. Em geral, a descoberta de serviços é viabilizada por um “banco de dados de serviços”, como Consul, etcd ou ZooKeeper.
No NGINX Plus R8, anunciamos uma versão persistente da nossa API de reconfiguração dinâmica e compartilhamos soluções de demonstração para Consul, etcd e ZooKeeper que consultam o banco de dados de serviços e enviam alterações de configuração para o NGINX Plus. No NGINX Plus R9, temos o prazer de anunciar o suporte a um método alternativo que usa consultas DNS SRV. As consultas DNS SRV retornam o endereço IP, a porta, a prioridade e o peso dos servidores de aplicativos de um determinado tipo.
Consul e SkyDNS para etcd fornecem interfaces DNS que os clientes podem usar para recuperar registros SRV. O NGINX Plus obtém a configuração de balanceamento de carga consultando diretamente a interface DNS de um serviço. O NGINX Plus verifica o serviço novamente em intervalos regulares, portanto, quaisquer alterações são propagadas de forma rápida e automática.
O exemplo a seguir configura o NGINX Plus para obter a lista de servidores upstream de my_service via DNS. O parâmetro service=http da diretiva server habilita o suporte a registros DNS SRV. As instâncias do aplicativo que dão suporte a my_service agora são descobertas automaticamente pelo NGINX Plus.
http { resolver dns-server-ip;
upstream my_service {
zone backend 64k;
server hostname-for-my_service service=http resolve;
}
server {
# ...
location /my_service {
# ...
proxy_pass http://my_service;
}
}
}Preços do aplicativo NGINX Plus
A precificação por instância é uma ótima maneira de começar a usar o NGINX Plus e oferece uma alternativa muito econômica aos balanceadores de carga de hardware, mas os possíveis usos do NGINX Plus vão muito além da simples substituição de hardware. Sua arquitetura de software leve torna o NGINX Plus ideal para o balanceamento de carga dedicado de cada aplicação e, como o NGINX Plus é baseado no NGINX Open Source, ele também pode substituir os servidores web e de aplicações da sua aplicação. Esses casos de uso impulsionam cada vez mais implantações do NGINX Plus para as quais a precificação por instância não é econômica nem flexível o suficiente.
Com o NGINX Plus R9, estamos lançando um novo modelo de preços por aplicativo “à vontade”, que permite executar quantas instâncias do NGINX Plus você quiser para uma aplicação específica. Implante o NGINX Plus quando, onde e como precisar na infraestrutura da sua aplicação e nos ambientes de desenvolvimento, testes, homologação, recuperação de desastres e produção. Não importa quantas VMs, contêineres ou nós você use: você paga um valor fixo pelo ano inteiro.
Toda assinatura inclui todos os recursos do software NGINX Plus e nosso premiado suporte e assistência de configuração. Além disso, ao optar pelo modelo de preços por aplicativo, você tem direito a:
- Suporte à instalação e/ou ao ajuste, à sua escolha, oferecido pela NGINX Professional Services
- Treinamento para sua equipe sobre os fundamentos do NGINX, tópicos avançados ou ambos
O uso é ilimitado por aplicação. Uma aplicação é definida como os componentes de software e a equipe que dão suporte a uma única aplicação web ou a uma aplicação para desktop ou dispositivos móveis com nome próprio. Arquiteturas baseadas em microsserviços e outras arquiteturas distribuídas são previstas e contempladas pelo modelo.
Também está disponível uma assinatura de Licença para o Site, que permite o uso ilimitado do NGINX Plus em toda a organização.
Recursos adicionais
O NGINX Plus R9 apresenta várias melhorias adicionais, incluindo:
- Melhorias no desempenho do cache – No ano passado, introduzimos um modelo de pool de threads para melhorar as operações de leitura do cache e evitar que elas pudessem bloquear o núcleo do NGINX. Isso proporcionou uma possível melhoria de 9 vezes no desempenho de determinadas cargas de trabalho do cache. Nesta versão, o NGINX Plus também pode transferir as gravações em disco do cache para threads.
- Consultas DNS via TCP – Por padrão, o NGINX Plus usa UDP para consultas DNS. No entanto, quando as respostas DNS são grandes – por exemplo, quando um nome é resolvido para um grande número de servidores –, a resposta completa pode não caber em um único datagrama UDP (limitado a 512 bytes). Uma resposta incompleta é sinalizada como truncada, e o NGINX Plus agora repete imediatamente a solicitação usando TCP. Isso permite que o NGINX Plus ofereça melhor suporte a implantações de servidores muito grandes e dinâmicas.
- Repetição de solicitações não idempotentes – Quando uma solicitação HTTP falha devido a um erro ou tempo limite, por padrão, o NGINX Plus tenta realizá-la novamente usando outro servidor do grupo upstream. Você pode usar a diretiva
proxy_next_upstreampara definir os tipos de erro para os quais o NGINX Plus repete as solicitações, incluindo códigos de resposta4xxou5xxespecíficos. Por convenção, as solicitaçõesPOSTgeralmente não são repetidas porque os dados do corpo são transmitidos ao servidor e não podem ser reenviados se o servidor falhar. No entanto, em determinadas circunstâncias de falha, versões anteriores do NGINX Plus repetiam solicitaçõesPOST, contrariando a premissa de que elas não seriam repetidas por não serem idempotentes. O NGINX Plus não repete mais automaticamente solicitações HTTP não idempotentes que falharam (POST,LOCKePATCH). Para restaurar o comportamento anterior e permitir que o NGINX Plus repita solicitações não idempotentes que falharam sempre que possível, inclua o novo parâmetronon_idempotentna diretivaproxy_next_upstream.
Atualize ou experimente o NGINX Plus
Se você estiver usando o NGINX Plus, recomendamos enfaticamente que faça a atualização para a versão 9 o mais rápido possível. Você terá acesso a diversas correções e melhorias, além de facilitar nosso trabalho caso precise abrir um chamado de suporte.
Se você ainda não experimentou o NGINX Plus, recomendamos que o conheça para aceleração da Web, balanceamento de carga e entrega de aplicações, ou como um servidor Web com suporte completo e uma API para recursos avançados de monitoramento e reconfiguração dinâmica. 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.
Editor – Para obter mais detalhes sobre os principais novos recursos do NGINX Plus R9, consulte estes materiais relacionados.
- Balanceamento de carga do tráfego DNS com NGINX e NGINX Plus
- Como usar o DNS para descoberta de serviços com o NGINX e o NGINX Plus
- Descoberta de serviços para NGINX Plus usando registros DNS SRV do Consul
- Novidades do NGINX Plus R9 (webinar sob demanda)
Sobre o autor

Publicações relacionadas no blog

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
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
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
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
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
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.