Anunciando o NGINX Plus R8

NGINX | 19 de janeiro de 2016

Temos o orgulho de anunciar a disponibilidade do NGINX Plus Release 8 (R8), a versão mais recente da nossa plataforma de entrega de aplicações. Esta versão inclui uma implementação do HTTP/2 totalmente pronta para produção e reforçada, uma API persistente de reconfiguração dinâmica, o novo módulo Slice para armazenamento em cache escalável de arquivos de vídeo grandes, além de muitos outros recursos para garantir uma entrega de aplicações impecável.

Nota do editor – O NGINX Plus R8 também apresentou a versão de prévia da tecnologia OAuth. Para obter mais informações, consulte abaixo.

Para obter mais detalhes sobre os principais novos recursos do NGINX Plus R8, consulte estes recursos relacionados.

Os principais novos recursos do NGINX Plus R8 são:

  • Implementação de HTTP/2 totalmente pronta para produção – No NGINX Plus R7, introduzimos suporte a HTTP/2 menos de sete meses após a ratificação do protocolo. O NGINX agora é o servidor web nº 1 para HTTP/2. Nossos esforços de desenvolvimento não terminaram com essa versão, e continuamos trabalhando intensamente para aprimorar nossa implementação. Com o NGINX Plus R8, temos orgulho de oferecer uma implementação do padrão HTTP/2 com suporte completo, pronta para produção e reforçada em termos de segurança. O HTTP/2 melhora o desempenho dos sites em até 30%. Com o NGINX Plus R8, você pode continuar adicionando suporte a HTTP/2 aos seus sites novos e existentes, sem precisar fazer alterações no aplicativo.
  • API de reconfiguração dinâmica persistente – Com a API de reconfiguração dinâmica do NGINX Plus, você pode adicionar ou remover servidores upstream sem reiniciar o NGINX Plus nem modificar e recarregar manualmente o arquivo de configuração. Esse é um excelente recurso para escalonamento automático e descoberta de serviços, pois permite modificar o pool de balanceamento de carga sob demanda. A partir do NGINX Plus R8, as alterações feitas por meio da API podem persistir após uma reinicialização ou o recarregamento da configuração. Com essa atualização da API, você pode fazer alterações permanentes na configuração de balanceamento de carga do NGINX Plus, adicionando e removendo servidores e alterando suas prioridades de balanceamento de carga. Com essa API fácil de proteger, as alterações podem ser feitas sempre que necessário.
  • Cache escalável para arquivos de vídeo grandes – Com o NGINX Plus R8, aprimoramos nosso cache de conteúdo escalável para lidar melhor com arquivos de vídeo grandes, como vídeos HTML5. Em vez de armazenar o arquivo de vídeo inteiro como uma única entrada de cache, o NGINX Plus o divide em fragmentos menores e os armazena em cache. Estruturar o cache dessa forma se alinha melhor à maneira como os usuários consomem vídeos na Internet (avançando rapidamente, interrompendo a reprodução antes do fim etc.) e reduz tanto a latência para os usuários quanto o tráfego de rede de e para os servidores de origem.

Recursos do NGINX Plus R8 em detalhes

Esta seção apresenta uma visão geral detalhada de todos os novos recursos e funcionalidades do NGINX Plus R8.

Prévia da tecnologia OAuth

Nota do editor – No NGINX Plus R8, apresentamos a versão de avaliação da tecnologia OAuth, uma implementação de autenticação que usa o padrão OAuth 2.0, cujos detalhes foram originalmente publicados aqui. No NGINX Plus R10, substituímos a versão de avaliação da tecnologia OAuth pelo suporte nativo ao padrão JSON Web Token (JWT).

Implementação de HTTP/2 pronta para produção

O HTTP/2 é a versão mais recente do protocolo HTTP. Ele corrige muitos dos problemas da versão original do protocolo HTTP, proporcionando um melhor desempenho geral e uma utilização mais eficiente dos recursos.

O uso do HTTP/2 vem aumentando continuamente desde que o padrão foi ratificado em fevereiro de 2015. Até o momento, 6% de todos os sites usam HTTP/2 e 69% dos usuários da Internet usam um navegador compatível com HTTP/2.

Com o NGINX Plus R8, você conta com a implementação de HTTP/2 mais testada em campo, estável e confiável disponível atualmente. 71% dos sites compatíveis com HTTP/2 usam NGINX e NGINX Plus, e incorporamos ao produto o feedback dos nossos primeiros usuários. Nossa implementação de HTTP/2 oferece suporte completo para uso em produção e pode ser dimensionada para lidar com as cargas de trabalho mais exigentes.

NGINX Plus atua como um gateway HTTP/2

O NGINX Plus atua como um “gateway HTTP/2” para facilitar a transição para o novo protocolo. No frontend, o NGINX Plus se comunica via HTTP/2 com os navegadores dos clientes que oferecem suporte a esse protocolo. No backend, o NGINX Plus se comunica via HTTP/1.x (ou FastCGI, SCGI, uwsgi etc.), como antes. Entre as duas pontas, o NGINX Plus faz a conversão entre HTTP/2 e HTTP/1.x (ou FastCGI etc.). Isso significa que os servidores e aplicativos que usam o NGINX Plus como proxy não são afetados pela migração para HTTP/2 e nem precisam saber se os clientes estão usando HTTP/2. No entanto, sites e aplicativos que atendem clientes HTTP/2 devem usar TLS/SSL, conforme exigido por todos os navegadores compatíveis com HTTP/2.

A única alteração que você precisa fazer na configuração do NGINX Plus ou do NGINX é adicionar o parâmetro http2 às diretivas listen:

listen 443 ssl http2 default_server;

Para obter mais detalhes sobre HTTP/2 no NGINX Plus e no NGINX, consulte nosso white paper e nosso webinar sob demanda.

Reconfiguração dinâmica persistente

O NGINX Plus fornece uma API baseada em HTTP para adicionar, remover e modificar servidores de backend dinamicamente, sem precisar recarregar a configuração. Esse é um excelente recurso para descoberta de serviços, escalonamento automático e outras aplicações que exigem a adição e a remoção de servidores sob demanda.

Com o NGINX Plus R8, as alterações feitas por meio dessa API agora podem persistir após reinicializações do NGINX Plus e recarregamentos da configuração. Adicione a nova diretiva state em um bloco upstream para especificar o arquivo no qual o NGINX Plus armazena as informações de estado dos servidores do grupo upstream. As alterações feitas com a API de reconfiguração dinâmica são registradas nesse arquivo. O NGINX Plus lê o arquivo na inicialização, permitindo que suas alterações persistam após reinicializações.

upstream backend {
    zone backend 64k;
    state /var/lib/nginx/state/backend.state;
}

A diretiva state especifica o arquivo no qual o NGINX Plus armazena as informações de estado dos servidores no grupo upstream. Quando ela é incluída na configuração, os servidores não podem ser definidos estaticamente usando a diretiva server.

O usuário nginx deve ter permissão de gravação no diretório /var/lib/nginx/state/. Se o diretório ainda não existir, execute estes comandos:

$ sudo mkdir -p /var/lib/nginx/state$ sudo chown nginx:nginx /var/lib/nginx/state

Cache escalável para arquivos de vídeo grandes

O armazenamento em cache é uma das maneiras mais rápidas de acelerar a entrega de conteúdo da web. Além de disponibilizar o conteúdo mais perto do usuário final, reduzindo a latência, ele também diminui o número de solicitações ao servidor de origem, reduzindo o uso da largura de banda e aumentando efetivamente a capacidade. Vídeos, especialmente em HTML5, são ideais para armazenamento em cache, pois seu conteúdo é estático e costuma ser muito solicitado logo após a publicação.

Com vídeos HTML5, o navegador faz um pseudo-streaming do conteúdo por meio de solicitações HTTP de intervalos de bytes. Por exemplo, ele solicita o primeiro minuto do vídeo, depois o segundo minuto e assim por diante. Esse tipo de streaming também facilita a implementação das funções de avanço e retrocesso rápidos, pois o navegador pode simplesmente pular as partes do vídeo de que não precisa e iniciar o intervalo de bytes solicitado no ponto para o qual o usuário avançou ou retrocedeu.

NGINX Plus R8 inclui o novo módulo Slice para oferecer melhor suporte a esse tipo de interação entre navegador e servidor para arquivos de vídeo armazenados em cache. O módulo divide os arquivos em fragmentos menores e os armazena em cache. Estruturar o cache dessa forma proporciona maior compatibilidade com técnicas modernas de streaming de vídeo, como as usadas pelo vídeo HTML5.

Para habilitar o fatiamento do cache, inclua a diretiva slice:

proxy_cache_path /tmp/mycache keys_zone=mycache:10m;
location / {
    proxy_cache  mycache;
    proxy_pass   http://localhost:8000;

    slice 1m;
    proxy_cache_key    $uri$is_args$args$slice_range;
    proxy_set_header   Range $slice_range;
    proxy_http_version 1.1;
    proxy_cache_valid  200 206 1h;
}

Nesta configuração de exemplo, o NGINX Plus divide os arquivos de vídeo em fragmentos de 1 MB. Você também deve incluir as seguintes diretivas:

  • proxy_cache_key com a nova variável $slice_range na chave definida – Define a chave de cache para diferenciar os fragmentos do arquivo original.
  • proxy_set_header – Substitui o cabeçalho Range na solicitação HTTP por $slice_range. Se o intervalo de bytes solicitado pelo cliente não coincidir com os limites entre os fragmentos criados pelo NGINX Plus, o NGINX Plus precisará fazer várias subsolicitações para obter todos os dados da solicitação de intervalo de bytes do cliente.
  • proxy_http_version – Atualiza a solicitação para HTTP/1.1, pois o HTTP/1.0 não oferece suporte a solicitações de intervalos de bytes.

Para mais detalhes sobre esse novo recurso, consulte esta publicação relacionada no blog.

Recursos adicionais

O NGINX Plus R8 também apresenta diversas melhorias adicionais para ajudar você a entregar aplicações sem falhas, incluindo:

  • Verificações de integridade mais flexíveis para aplicações complexas. Por padrão, o NGINX Plus envia mensagens de verificação de integridade para a porta especificada pela diretiva server no bloco upstream. Com o NGINX Plus R8, agora você pode especificar uma porta alternativa em cada bloco location, o que é particularmente útil ao monitorar a integridade de vários serviços no mesmo host. Inclua o novo parâmetro port na diretiva health_check:
location / {    proxy_pass http://backend;
    health_check port=8080;
}
  • Por padrão, o NGINX Plus agora armazena em cache as solicitações HTTP HEAD (convertendo-as em solicitações GET antes de armazená-las em cache). Para desabilitar esse tipo de armazenamento em cache, inclua a diretiva proxy_cache_convert_head off. Uma solicitação HEAD é idêntica a uma solicitação GET padrão, exceto pelo fato de que o corpo da resposta não é retornado. As solicitações HEAD são úteis para verificar a validade e a acessibilidade de links, bem como se eles foram modificados recentemente.
  • Uma nova variável, $realip_remote_addr, captura o endereço IP original do cliente ao usar o módulo Real IP.
  • O novo parâmetro nohostname das diretivas access_log e error_log desativa o registro do campo de nome do host no syslog; o nome do host é desnecessário ao registrar em um servidor syslog local.

Os seguintes módulos do pacote NGINX Plus Extras foram atualizados:

Os seguintes pacotes não estão mais disponíveis:

  • nginx-plus-http2 – O suporte a HTTP/2 agora está incluído nos pacotes nginx-plus e nginx-plus-extras. O NGINX Plus não oferece mais suporte a SPDY.
  • nginx-plus-lua – Para ter suporte a Lua, use o pacote nginx-plus-extras.

Faça upgrade ou experimente o NGINX Plus

Se você estiver usando o NGINX Plus, recomendamos enfaticamente que faça a atualização para a versão 8 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. 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, 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. Você pode começar gratuitamente hoje mesmo com uma avaliação de 30 dias e conferir como o NGINX Plus pode ajudar você a disponibilizar e escalar suas aplicações.


Compartilhar
Tags: API

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.