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 aplicativos. Esta atualização oferece dois novos recursos significativos: a capacidade de carregar dinamicamente extensões avançadas no NGINX Plus sem a necessidade de binários personalizados e balanceamento de carga UDP com suporte comercial, juntamente com nossos recursos existentes de balanceamento de carga TCP e HTTP.
Além da nova funcionalidade 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 "coma à vontade", que permite uso ilimitado em qualquer lugar do seu aplicativo ou empresa por um preço fixo. O NGINX Plus agora também pode ser adquirido com três níveis de suporte diferentes : Suporte básico 9×5 para aplicativos não produtivos, suporte profissional 24×7 por telefone ou e-mail e suporte empresarial 24×7 com respostas garantidas em 30 minutos.
Editor – Para mais detalhes sobre os principais novos recursos do NGINX Plus R9, consulte estes recursos relacionados.
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 que deseja e instalá-las diretamente do repositório NGINX Plus, acessível por meio dos comandos padrão apt
e yum
. Com o tempo, distribuiremos um conjunto cada vez maior de extensões testadas e totalmente certificadas para nosso software.
Os módulos mais populares criados pelo NGINX e de 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 converterem seus módulos para o novo formato, o que é necessário antes que os módulos possam ser adicionados ao nosso repositório.
Balanceamento de carga UDP – Com a adição do balanceamento de carga UDP aos seus recursos existentes de balanceamento de carga TCP e HTTP, o NGINX Plus agora pode balancear a carga de quase qualquer aplicativo. Adicionamos balanceamento de carga UDP no NGINX Open Source no mês passado 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 de integridade ativas, fornece visibilidade crítica com uma riqueza de estatísticas e permite adicionar e remover servidores dinamicamente .
O UDP é comumente usado para 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) e RADIUS (um protocolo de autenticação). O UDP também está emergindo como um dos protocolos de escolha para aplicações de IoT devido aos seus baixos requisitos de largura de banda. O NGINX Plus pode entregar e balancear a carga desses aplicativos existentes e novos com facilidade.
Descoberta de serviço usando registros DNS SRV
– Os aplicativos baseados em microsserviços são dinâmicos – os serviços podem ser ampliados, reduzidos e movidos sob demanda. Uma boa maneira de ficar por dentro do 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 clientes (como NGINX Plus) solicitarem informações sobre serviços descobertos.
O número da porta usado pelos serviços geralmente é atribuído dinamicamente. Como resultado, as plataformas de descoberta de serviços usam registros DNS SRV
que incluem informações de número de porta. O NGINX Plus agora oferece suporte a registros DNS SRV
e pode usar solicitações DNS para consultar o registro de serviços em busca dos locais dos seus serviços, incluindo informações de porta atribuídas dinamicamente.
Preços do aplicativo NGINX Plus – Para garantir o máximo desempenho e tempo de atividade durante alto crescimento, sazonalidade ou tráfego elástico, muitos aplicativos exigem infraestrutura dinâmica. Esses aplicativos também costumam usar microsserviços ou arquiteturas distribuídas e utilizam contêineres ou máquinas virtuais para tempo de execução. Pagar por instância ou hora de máquina para software não oferece a flexibilidade ou a relação custo-benefício que esses aplicativos modernos exigem. Para esses casos de uso, estamos introduzindo o preço do aplicativo NGINX Plus.
O preço do aplicativo NGINX Plus oferece uso ilimitado, "à vontade", dos recursos estendidos do NGINX Plus e binários com suporte comercial por um preço fixo por aplicativo por ano. Não importa quantas VMs, contêineres, nós, conexões simultâneas ou usuários, você paga uma taxa baixa durante todo o ano. Implante o NGINX Plus quando, onde e como precisar dentro da infraestrutura do seu aplicativo e em ambientes de desenvolvimento, teste, preparação, recuperação de desastres e produção – não precisa se preocupar com contas imprevisíveis baseadas no consumo e nem esperar para obter chaves de licença quando precisar aumentar a capacidade repentinamente.
Esta seção fornece uma visão geral detalhada de todos os novos recursos e funcionalidades do NGINX Plus R9.
O NGINX e o NGINX Plus têm uma arquitetura modular. Sua funcionalidade principal pode ser estendida por módulos escritos por desenvolvedores terceirizados e pela equipe de engenharia principal do NGINX. Esses módulos adicionam funcionalidades importantes, como incorporação de scripts Lua e 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 NGINX oficiais disponíveis. Incluímos 56 deles no pacote básico nginx‑plus e mais 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 no pacote nginx‑plus‑extras (NGINX oficial e de terceiros) também podem ser carregados dinamicamente no pacote base NGINX Plus, nginx‑plus . Isso permite que você carregue apenas os módulos adicionais que realmente precisa.
Esses módulos estão disponíveis no repositório NGINX Plus e planejamos adicionar módulos ao repositório nos próximos meses. Incentivamos qualquer pessoa que esteja usando o pacote nginx‑plus‑extras a migrar para o pacote principal nginx‑plus porque descontinuaremos o pacote nginx‑plus‑extras em uma versão posterior.
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, para que possamos ter certeza de que (quando desconfigurado) o módulo não interfere na operação correta do NGINX Plus. Rastrearemos atualizações de módulos e emitiremos novas compilações em cada lançamento e se um problema crítico de segurança for relatado entre os lançamentos.
Ter módulos dinâmicos nos permite distribuir um único binário NGINX Plus com a funcionalidade que todos usam. Os administradores podem então escolher os módulos adicionais que desejam usar.
Para instalar e carregar módulos dinamicamente, execute as seguintes etapas. Eles presumem que você configurou sua ferramenta de gerenciamento de pacotes para recuperar arquivos da NGINX, Inc. em vez da distribuição do fornecedor do sistema operacional.
Use a ferramenta de gerenciamento de pacotes padrão do seu sistema operacional ( apt
ou yum
, 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 apropriados para sistemas baseados em Debian.
# apt-get update # apt-get install nginx-plus # apt-get install nome-do-módulo
Os nomes que você pode substituir por nome do módulo
nesta versão são:
nginx-plus-modulo-geoip
nginx-plus-module-headers-mais
nginx-plus-module-image-filter
nginx-plus-modulo-lua
nginx-plus-module-passageiro
nginx-plus-modulo-perl
nginx-plus-modulo-rtmp
nginx-plus-conjunto-de-modulos-misc
nginx-plus-modulo-xslt
O diretório /etc/nginx/modules é criado automaticamente com links simbólicos para os locais de instalação dos arquivos .so para os módulos selecionados.
Notas:
Se estiver usando o pacote nginx‑plus‑extras para uma versão anterior do NGINX Plus, você deverá removê-lo antes de instalar o pacote nginx‑plus do R9. Para sistemas baseados em Debian, o conjunto apropriado de comandos é:
# apt-get update # apt-get remove nginx-plus-extras # apt-get install nginx-plus # apt-get install nome-do-módulo
Alguns módulos não estão disponíveis para determinadas versões do sistema operacional devido a limitações do sistema operacional. Para obter detalhes e 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_module
para cada módulo carregável dinamicamente:
load_module módulos/ nome-do-módulo .so;
Verifique a nova configuração quanto à validade sintática e recarregue o NGINX Plus.
# nginx -t && nginx -s recarregar
Os módulos listados em nginx.conf são carregados dinamicamente no NGINX Plus.
No mês passado, lançamos o balanceamento de carga UDP no NGINX Open Source , e o NGINX Plus R9 estende essa capacidade com verificações de integridade, monitoramento de status estendido e reconfiguração dinâmica.
Quanto ao balanceamento de carga TCP, a configuração para balanceamento de carga UDP vai no contexto de fluxo
. E assim como o balanceamento de carga HTTP e TCP, o balanceamento de carga UDP usa um grupo upstream para definir o conjunto de servidores de origem que fornecem o serviço baseado em UDP e o algoritmo a ser usado ao balancear a carga do tráfego entre os servidores.
A configuração também define um servidor virtual para cada porta UDP, com uma diretiva proxy_pass
nomeando o grupo upstream que fornece o serviço associado:
fluxo { upstream dns_upstreams { menor_tempo; servidor dns-servidor-1-ip :53; servidor dns-servidor-2-ip :53; } servidor { ouvir 53 udp ; ouvir 53; #tcp proxy_pass dns_upstreams; tempo_limite_do_proxy 1s; respostas_do_proxy 1; log_de_erros logs/dns.log; } }
Este exemplo de configuração é para balanceamento de carga de serviços DNS. No bloco upstream
, estamos configurando o algoritmo Least Time, para que o NGINX Plus envie cada solicitação ao servidor que atualmente tem menos “conexões” e está respondendo mais rápido. No bloco do servidor, escutamos o tráfego UDP e TCP, porque o DNS pode ser executado 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-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 param de enviar tráfego para ele por um período de tempo definido.
O NGINX Plus R9 adiciona verificações de integridade ativas para serviços UDP, semelhantes às do 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 tem os mecanismos de entrega confiável que o TCP fornece para HTTP, as verificações de integridade ativas são ainda mais críticas para aplicativos UDP do que para aplicativos TCP e HTTP.
Com o NGINX Plus, você também pode adicionar ou remover servidores upstream rapidamente. Isso facilita (por exemplo) colocar servidores offline para manutenção e, em seguida, reinseri-los no pool com balanceamento de carga. Novas estatísticas relacionadas ao UDP no módulo NGINX Plus Status e no painel de monitoramento de atividades ao vivo oferecem visibilidade crítica sobre o desempenho dos seus servidores.
O NGINX Plus R9 balanceia a carga dos aplicativos baseados em UDP simples mais comumente usados: DNS, RADIUS, syslog e NTP. Protocolos UDP de longa duração, como Voz sobre IP e outros aplicativos baseados em SIP, não são suportados no momento.
SRV
Os aplicativos web modernos são compostos de vários pequenos componentes de aplicativos – servidores web, servidores de aplicativos, bancos de dados e assim por diante. Um balanceador de carga front-end como o NGINX Plus inspeciona o tráfego de entrada e, em seguida, roteia e balanceia a carga das solicitações entre os componentes do aplicativo.
Quando componentes de aplicativos são implantados em plataformas virtuais ou baseadas em contêineres, eles podem ter endereços IP e portas imprevisíveis. A descoberta de serviço é o processo pelo qual um cliente local (como o balanceador de carga frontend NGINX Plus) localiza esses componentes para poder enviar tráfego para eles. A descoberta de serviços geralmente é facilitada 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 verificam o banco de dados de serviço e enviam alterações de configuração para o NGINX Plus. No NGINX Plus R9, temos o prazer de anunciar suporte para 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 tipo específico.
O Consul e o 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 regularmente para que quaisquer alterações sejam propagadas de forma rápida e automática.
O exemplo a seguir configura o NGINX Plus para obter a lista de servidores upstream para my_service via DNS. O parâmetro service=http
da diretiva server
habilita o suporte para registros DNS SRV
. As instâncias do aplicativo que dão suporte ao my_service agora são descobertas automaticamente pelo NGINX Plus.
http { resolver dns-server-ip ; upstream my_service { zona backend 64k; servidor nome-do-host-para-meu_serviço service=http resolve; } servidor { # ... localização /meu_serviço { # ... proxy_pass http://meu_serviço; } } }
O preço por instância é uma ótima maneira de começar a usar o NGINX Plus e fornece uma alternativa muito econômica aos balanceadores de carga de hardware, mas os usos potenciais 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 balanceamento de carga dedicado de cada aplicativo e, como o NGINX Plus é construído no NGINX Open Source, ele também pode substituir os servidores web e de aplicativos em seu aplicativo. Esses casos de uso impulsionam cada vez mais implantações do NGINX Plus para as quais o preço por instância não é econômico ou flexível o suficiente.
Com o NGINX Plus R9, estamos introduzindo um novo modelo de preços de aplicativos “all you can eat” que permite que você execute quantas instâncias do NGINX Plus desejar para um aplicativo específico. Implante o NGINX Plus quando, onde e como precisar na infraestrutura do seu aplicativo e em ambientes de desenvolvimento, teste, preparação, recuperação de desastres e produção. Não importa quantas VMs, contêineres ou nós, você paga uma taxa fixa para o ano inteiro.
Cada assinatura inclui todos os recursos do software NGINX Plus e nosso premiado suporte e assistência de configuração . Além disso, optar pelo modelo de preços de aplicativos lhe dá direito a:
O uso é ilimitado por aplicativo. Um aplicativo é definido como os componentes de software e a equipe que dão suporte a um único aplicativo da web ou a um aplicativo de desktop ou móvel nomeado individualmente. Arquiteturas baseadas em microsserviços e outras arquiteturas distribuídas são antecipadas e adotadas dentro do modelo.
Uma assinatura de Licença de Site também está disponível, fornecendo uso ilimitado do NGINX Plus em toda a organização.
O NGINX Plus R9 apresenta uma série de melhorias adicionais, incluindo:
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 novamente automaticamente com outro servidor no grupo upstream. Você pode usar a diretiva proxy_next_upstream
para definir os tipos de erros para os quais o NGINX Plus repete solicitações, incluindo 4xx
ou 5xx
códigos de resposta.
Por convenção, as solicitações POST
geralmente não são repetidas porque os dados do corpo são transmitidos para o servidor e não podem ser reproduzidos se o servidor falhar. Entretanto, sob certas circunstâncias de falha, versões anteriores do NGINX Plus tentariam novamente solicitações POST
, o que é inconsistente com a suposição de que elas não seriam tentadas novamente porque não são idempotentes.
O NGINX Plus não tenta mais automaticamente solicitações HTTP não idempotentes com falha ( POST
, LOCK
e PATCH
). Para restaurar o comportamento anterior e permitir que o NGINX Plus tente novamente solicitações não idempotentes com falha sempre que possível, inclua o novo parâmetro non_idempotent
na diretiva proxy_next_upstream
.
Se você estiver executando o NGINX Plus, recomendamos fortemente que você atualize para a versão 9 o mais rápido possível. Você aprenderá uma série de correções e melhorias, e isso nos ajudará a ajudá-lo caso precise abrir um tíquete de suporte.
Se você ainda não experimentou o NGINX Plus , recomendamos que você o experimente para aceleração da web, balanceamento de carga e entrega de aplicativos, ou como um servidor web totalmente suportado com uma API para monitoramento aprimorado e reconfiguração dinâmica . Comece hoje mesmo com uma avaliação gratuita de 30 dias e veja você mesmo como o NGINX Plus pode ajudar você a entregar e dimensionar seus aplicativos.
Editor – Para mais detalhes sobre os principais novos recursos do NGINX Plus R9, consulte estes recursos relacionados.
"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."