BLOG | NGINX

Anunciando o NGINX Plus R8

NGINX-Parte-de-F5-horiz-preto-tipo-RGB
Miniatura de Owen Garrett
Owen Garrett
Publicado em 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 aplicativos. Esta versão inclui uma implementação totalmente pronta para produção e reforçada do HTTP/2, uma API de reconfiguração dinâmica persistente, o novo módulo Slice para armazenamento em cache escalável de grandes arquivos de vídeo e muitos outros recursos para garantir a entrega perfeita do aplicativo.

Editor – O NGINX Plus R8 também apresentou a prévia da tecnologia OAuth. Para obter informações sobre isso, veja 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 HTTP/2 totalmente pronta para produção – No NGINX Plus R7, introduzimos suporte para HTTP/2 menos de sete meses após o protocolo ter sido ratificado. O NGINX é agora o servidor web número 1 para HTTP/2 . Nossos esforços de desenvolvimento não terminaram com esse lançamento e continuamos trabalhando duro para melhorar nossa implementação. Com o NGINX Plus R8 , temos orgulho de fornecer uma implementação totalmente suportada, pronta para produção e reforçada do padrão HTTP/2.

    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 seu 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 ou modificar e recarregar manualmente o arquivo de configuração. Este é um ótimo recurso para dimensionamento automático e descoberta de serviços, permitindo que você modifique o pool de balanceamento de carga sob demanda. A partir do NGINX Plus R8 , as alterações feitas com a API podem persistir após uma reinicialização ou recarregamento de configuração.

    Com esta 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. Usando esta API facilmente protegida, as alterações podem ser feitas com a frequência necessária.

  • Cache escalável para arquivos de vídeo grandes – Com o NGINX Plus R8, melhoramos nosso cache de conteúdo escalável para lidar melhor com arquivos de vídeo grandes, como vídeo 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 depois os armazena em cache. Estruturar o cache dessa maneira se alinha melhor à forma como os usuários consomem vídeo na Internet (avanço rápido, término antecipado, etc.) e reduz a latência do usuário, bem como o tráfego de rede de e para os servidores de origem.

Recursos do NGINX Plus R8 em detalhes

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

Prévia da tecnologia OAuth

Editor – No NGINX Plus R8, apresentamos o OAuth Technology Preview, uma implementação de autenticação usando o padrão OAuth 2.0, e os detalhes apareceram originalmente aqui. No NGINX Plus R10, substituímos o OAuth Technology Preview pelo suporte nativo para o padrão JSON Web Token (JWT) .

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

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

O uso do HTTP/2 tem aumentado constantemente desde que o padrão foi ratificado em fevereiro de 2015. No momento em que este artigo foi escrito, 6% de todos os sites usam HTTP/2 e 69% dos usuários na Internet usam um navegador compatível com HTTP/2.

Com o NGINX Plus R8 , você obtém a implementação mais testada, estável e confiável do HTTP/2 disponível hoje. 71% dos sites habilitados para HTTP/2 são alimentados por NGINX e NGINX Plus, e incorporamos o feedback dos nossos primeiros usuários ao produto. Nossa implementação HTTP/2 é totalmente suportada para uso em produção e pode ser dimensionada para lidar com as cargas de trabalho mais difíceis.

O 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 comunica HTTP/2 com navegadores web clientes que o suportam. No backend, o NGINX Plus fala HTTP/1.x (ou FastCGI, SCGI, uwsgi, etc.), assim como antes. Nesse meio tempo, o NGINX Plus traduz entre HTTP/2 e HTTP/1.x (ou FastCGI, etc). Isso significa que servidores e aplicativos proxy do NGINX Plus não são afetados pela mudança para HTTP/2 e nem precisam saber se seus 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 da Web que oferecem suporte a HTTP/2.

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

ouvir 443 ssl http2 default_server;

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

Reconfiguração dinâmica persistente

O NGINX Plus fornece uma API baseada em HTTP para adicionar, remover e modificar servidores de back-end dinamicamente e sem precisar recarregar a configuração. Este é um ótimo recurso para descoberta de serviços, dimensionamento automático e outros aplicativos que exigem adicionar e remover servidores sob demanda.

Com o NGINX Plus R8 , as alterações feitas usando esta API agora podem ser persistentes em reinicializações do NGINX Plus e recarregamentos de configuração. Adicione a nova diretiva de estado em um bloco upstream para nomear o arquivo no qual o NGINX Plus armazena informações de estado para os servidores no grupo upstream. As alterações feitas com a API de reconfiguração dinâmica são registradas no arquivo. O NGINX Plus lê o arquivo na inicialização, e é assim que suas alterações persistem após reinicializações.

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

A diretiva de estado nomeia o arquivo no qual o NGINX Plus armazena informações de estado para os servidores no grupo upstream. Quando incluído 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, você pode executar 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 cache é uma das maneiras mais rápidas de acelerar a entrega de conteúdo da web. O armazenamento em cache não apenas coloca o conteúdo mais próximo do usuário final, reduzindo a latência, como também reduz o número de solicitações ao servidor de origem upstream, diminuindo o uso da largura de banda e aumentando efetivamente a capacidade. Vídeos, especialmente vídeos HTML5, são um alvo principal para armazenamento em cache, porque o conteúdo é estático e tende a ser muito solicitado quando publicado pela primeira vez.

Com o vídeo HTML5, o navegador transmite conteúdo pseudotransmitindo solicitações de intervalo de bytes HTTP. Ele solicita o primeiro minuto do vídeo, por exemplo, depois o segundo minuto, e assim por diante. O streaming dessa forma também facilita a implementação da funcionalidade de avanço rápido e retrocesso, pois o navegador pode simplesmente pular seções do vídeo que não precisa, iniciando o intervalo de bytes solicitado no ponto em que o usuário avançou ou retrocedeu.

O NGINX Plus R8 inclui o novo módulo Slice para oferecer melhor suporte a esse estilo de interação navegador-servidor para arquivos de vídeo em cache. O módulo divide os arquivos em fragmentos menores e depois armazena esses fragmentos em cache. Estruturar o cache dessa maneira se alinha melhor com técnicas modernas de streaming de vídeo, como aquelas usadas pelo vídeo HTML5.

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

proxy_cache_path /tmp/mycache keys_zone=mycache:10m; localização / { proxy_cache mycache; proxy_pass http://localhost:8000; fatia 1m ; proxy_cache_key $uri$is_args$args $slice_range ; proxy_set_header Intervalo $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 entre 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 estiver alinhado com os limites entre os fragmentos criados pelo NGINX Plus, o NGINX Plus precisará fazer várias sub-solicitações para obter todos os dados na solicitação de intervalo de bytes do cliente.
  • proxy_http_version – Atualiza a solicitação para HTTP/1.1, porque o HTTP/1.0 não suporta solicitações de intervalo de bytes.

Para mais detalhes sobre esse novo recurso, consulte esta postagem de blog relacionada .

Características adicionais

O NGINX Plus R8 também apresenta uma série de melhorias adicionais para ajudar você a entregar aplicativos sem falhas, incluindo:

  • Verificações de integridade mais flexíveis para aplicativos complexos. Por padrão, o NGINX Plus envia mensagens de verificação de integridade para a porta especificada pela diretiva do servidor no bloco upstream . Com o NGINX Plus R8, agora você pode especificar uma porta alternativa em cada bloco de localização , o que é particularmente útil ao monitorar a integridade de muitos serviços no mesmo host.

    Inclua o novo parâmetro de porta na diretiva health_check :

    localização / { proxy_pass http://backend; health_check porta= 8080; }
    
  • Por padrão, o NGINX Plus agora armazena em cache solicitações HTTP HEAD (ele as converte em solicitações GET antes de armazená-las em cache). Para desabilitar esse tipo de cache, inclua a diretiva proxy_cache_convert_head off .

    Uma solicitação HEAD é idêntica a uma solicitação GET padrão, exceto que o corpo da resposta não é retornado. CABEÇA solicitações são úteis para testar links quanto à validade, acessibilidade e modificações recentes.

  • 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 para as diretivas access_log e error_log desabilita o registro do campo hostname no syslog ; o hostname é desnecessário ao registrar em um servidor syslog local.

Os seguintes módulos no 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 ao SPDY.
  • nginx-plus-lua – Para suporte a Lua, use o pacote nginx-plus-extras .

Atualize ou experimente o NGINX Plus

Se você estiver executando o NGINX Plus, recomendamos fortemente que atualize para a versão 8 o mais rápido possível. Você aprenderá uma série de correções e melhorias, e isso nos ajudará a ajudar você caso precise abrir um tíquete de suporte. Instruções de instalação e atualização podem ser encontradas no portal do cliente .

Se você ainda não experimentou o NGINX Plus , recomendamos que experimente para aceleração web, balanceamento de carga e entrega de aplicativos, ou como um servidor web totalmente suportado com APIs aprimoradas de monitoramento e gerenciamento . Você pode começar hoje mesmo gratuitamente com uma avaliação de 30 dias e ver por si mesmo como o NGINX Plus pode ajudar você a entregar e dimensionar seus aplicativos.


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