Temos o prazer de anunciar a disponibilidade do NGINX Plus Release 5 (R5). Esta versão reúne os recursos lançados recentemente na distribuição NGINX Open Source e diversos recursos disponíveis exclusivamente no NGINX Plus.
O principal novo recurso é o balanceamento de carga para protocolos gerais baseados em TCP, como protocolos de banco de dados, RPC e chat. A publicação relacionada no blog, Balanceamento de carga TCP no NGINX Plus R5, apresenta todos os detalhes.
O NGINX Plus R5 também inclui várias melhorias no balanceamento de carga e no armazenamento em cache.
Considere o NGINX Plus se você procura uma solução de aceleração da Web, balanceamento de carga ou entrega de aplicações, ou um servidor Web com suporte completo e APIs adicionais de monitoramento e gerenciamento.
Balanceamento de carga TCP
O NGINX Plus R5 apresenta o balanceamento de carga para conexões TCP, implementado no módulo stream. Você pode balancear a carga de uma ampla variedade de conexões não HTTP, como MySQL e SSL/TLS (sem descriptografia). É possível até mesmo balancear a carga e gerenciar protocolos de e-mail (SMTP, POP3, IMAP) combinando o módulo proxy mail existente com o novo módulo stream.

Esta versão oferece diversos métodos de balanceamento de carga (Round Robin, Menor Número de Conexões, Hash, Hash de IP), controle sobre os parâmetros de conexão, alta disponibilidade com verificações de integridade em linha, inicialização lenta para servidores recuperados e a possibilidade de definir manualmente os servidores como ativos, de backup ou inativos.
Para mais informações, confira Balanceamento de carga TCP no NGINX Plus R5 em nosso blog e Balanceamento de carga TCP no Guia de Administração do NGINX Plus. Esse recurso é exclusivo do NGINX Plus.
Melhor controle das sessões de usuários com balanceamento de carga
Às vezes, é necessário desativar um nó upstream para realizar manutenção ou atualização. Com o novo recurso de drenagem de sessões da versão 5, você pode instruir o NGINX Plus a não enviar novas conexões para esse nó, mantendo nele as sessões já estabelecidas até que sejam concluídas.

Você pode usar o monitoramento de atividades em tempo real para monitorar o tráfego no nó em processo de drenagem e aguardar até ter certeza de que as sessões dos usuários foram concluídas antes de colocá-lo offline:
# Return the Unix epoch time in seconds (rounded to milliseconds) when # Server 1 in upstream group 'backends' was last used
$ curl http://localhost:8080/status/upstreams/backends/1/selected
# Calculate how long the server has been idle (in milliseconds)
$ expr `date +%s000` - `curl -s http://localhost:8080/status/upstreams/backends/1/selected`[Editor – Os comandos anteriores usam o módulo Status do NGINX Plus (habilitado pela diretiva status). Esse módulo foi substituído pela NGINX Plus API e descontinuado no NGINX Plus Release 13 (R13) e em versões posteriores, e não estará disponível após o NGINX Plus R15.]
O mecanismo de sticky cookie para rastrear sessões de usuários foi atualizado para que o tempo de expiração seja aplicado à solicitação mais recente da sessão, e não à primeira. Isso permite rastrear as sessões com mais precisão.
Os recursos de drenagem de sessões e de cookies persistentes estão disponíveis somente no NGINX Plus.
Controle aprimorado do tráfego em caso de falha de um nó
Quando um servidor em um grupo upstream não responde a uma solicitação, o NGINX Plus tenta automaticamente processá-la novamente em outros servidores do grupo. As novas diretivas proxy_next_upstream_tries e proxy_next_upstream_timeout oferecem mais controle sobre esse comportamento, limitando, respectivamente, o número de novas tentativas e por quanto tempo o NGINX pode continuar tentando.
Esse recurso foi lançado no NGINX 1.7.5 e se aplica ao proxy de tráfego HTTP, FastCGI, uWSGI, SCGI e memcached.
O cabeçalho HTTP Vary é compatível com conteúdo em cache
Alguns servidores web fornecem versões diferentes de um recurso dependendo do tipo de cliente que o solicita. Por exemplo, quando um navegador solicita a página inicial de um site, o servidor fornece uma versão com imagens de alta resolução, mas fornece uma versão sem imagens quando o cliente é um dispositivo móvel. Esse servidor pode definir o cabeçalho Vary em suas respostas para informar aos proxies de cache quais cabeçalhos da solicitação do cliente ele usa para determinar a versão a ser enviada (e, consequentemente, quais cabeçalhos o proxy precisa usar para determinar qual versão de um recurso armazenado em cache deve enviar).
Um caso de uso comum é diferenciar as versões compactada e não compactada do mesmo recurso; nesse caso, o cabeçalho Vary: Accept-Encoding na resposta do servidor instrui o cache a usar o valor do cabeçalho Accept-Encoding na solicitação do cliente para determinar qual versão fornecer.
O NGINX Plus agora oferece suporte completo ao cabeçalho Vary para armazenar corretamente em cache diversas variantes do mesmo recurso. Esse recurso foi introduzido no NGINX 1.7.7.
Suporte aprimorado para fornecimento de intervalos de bytes a partir do cache
Um cliente pode buscar uma parte específica de um arquivo – por exemplo, um segmento de um download de vídeo ou uma página de um documento PDF – especificando o intervalo de bytes apropriado em sua solicitação. O NGINX Plus pode atender a essas solicitações e fornecer aos clientes intervalos de bytes de recursos armazenados em cache, mesmo que o servidor de origem do conteúdo não ofereça suporte a intervalos de bytes.
Na primeira vez que o NGINX Plus recebe uma solicitação de um arquivo (seja do arquivo completo ou de um intervalo de bytes), ele solicita o arquivo inteiro ao servidor de origem e o armazena em cache. Em seguida, o NGINX Plus atende às solicitações de intervalos de bytes usando o cache. Isso reduz a carga nos servidores upstream (de origem).
Esse recurso foi introduzido no NGINX 1.7.7 e é habilitado com a diretiva proxy_force_ranges.
Maior controle sobre a largura de banda do upstream
A nova diretiva proxy_limit_rate limita a velocidade com que o NGINX Plus lê dados de um servidor upstream. Isso evita que uma única solicitação grande consuma toda a largura de banda entre o NGINX e o servidor de origem. Quando o cache está habilitado, ela controla efetivamente a taxa de gravação do conteúdo no cache em disco, o que é útil quando os discos apresentam alta latência de gravação.
Essa diretiva foi introduzida no NGINX 1.7.7.
Outras alterações no NGINX Plus R5
O módulo RTMP de terceiros foi adicionado ao pacote NGINX Plus Extras.
O NGINX Plus agora está disponível para Ubuntu 14.10, para ARMv8 (aarch64) no Ubuntu 14.04 e para SUSE Linux Enterprise Server 12.
Atualize ou experimente o NGINX Plus
Recomendamos enfaticamente que nossos clientes do NGINX Plus atualizem para a versão 5 o mais rápido possível. Assim, vocês terão acesso a diversas correções e melhorias, além de facilitar nosso trabalho caso precisem abrir um chamado de suporte. As instruções de instalação e atualização estão disponíveis no portal do cliente.
Se você ainda não experimentou o NGINX Plus, comece hoje mesmo sua avaliação gratuita de 30 dias e descubra como o NGINX Plus pode ajudar você a escalar e disponibilizar suas aplicações.
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.