A NGINX, Inc. tem o orgulho de anunciar a disponibilidade do NGINX Plus Release 7 (R7), a versão mais recente da nossa plataforma de entrega de aplicativos. A atualização fornece uma implementação totalmente suportada do novo padrão web HTTP/2, o primeiro desse tipo para um servidor web líder. O NGINX Plus pode ser implantado como um gateway HTTP/2 frontend e acelerador para serviços web novos e existentes.
[Editor – Esta postagem foi atualizada para se referir à API NGINX Plus , que substitui e desaprova o módulo de status separado mencionado na versão original da postagem.]
A atualização mais recente também adiciona melhorias drásticas e recursos adicionais para garantir que as organizações possam entregar seus aplicativos com o desempenho, a segurança e a confiabilidade necessários para aplicativos corporativos. Isso inclui melhorias significativas para facilitar o monitoramento, o gerenciamento e a depuração de aplicativos, além de recursos adicionais de segurança e otimização de desempenho.
Editor – Para mais detalhes sobre os principais novos recursos do NGINX Plus R7 , consulte estas postagens de blog relacionadas:
Confira também nosso webinar sob demanda, O que há de novo no NGINX Plus R7?
Os principais recursos desta versão incluem:
Observação : Com base nos testes de usuários do patch de nível alfa e com o suporte inicial dos copatrocinadores corporativos Automattic e Dropbox, a versão final de código aberto do HTTP/2 estará disponível após o lançamento do R7.
SO_REUSEPORT
e atualmente requer Linux 3.9+ ou DragonFly BSD.“Ajudamos centenas de novos clientes a implantar seus aplicativos com o NGINX Plus no ano passado, e nosso último lançamento tem como objetivo fornecer a eles ainda mais ferramentas para garantir a melhor experiência possível para seus usuários”, afirma Gus Robertson, CEO da NGINX, Inc. “Somos a estrutura da infraestrutura dos nossos clientes, e isso nos coloca em uma posição única para poder fornecer visibilidade e controle incomparáveis sobre os aplicativos que eles implantam. Levamos a sério nosso papel crítico nos negócios de nossos clientes, e os novos recursos do NGINX Plus R7 refletem isso.”
A adoção do NGINX cresceu consideravelmente nos últimos meses. O NGINX é o servidor web número 1 entre os 100.000 principais sites , com quase metade dos sites mais movimentados do mundo usando o NGINX para entregar seus aplicativos a bilhões de usuários. A NGINX, Inc. continua investindo pesadamente em nossas ferramentas de código aberto e com suporte comercial para facilitar a entrega perfeita de aplicativos para todos, desde os aplicativos menores e mais leves até as maiores plataformas do mundo.
Recursos do NGINX Plus R7 em detalhes
Esta seção fornece uma visão geral detalhada de todos os novos recursos e funcionalidades do NGINX Plus R7 .
O NGINX Plus R7 oferece suporte para HTTP/2, a versão mais recente do protocolo HTTP, por meio do novo pacote nginx-plus-http2 . O HTTP/2 traz maior desempenho e segurança para aplicativos web modernos. O suporte do NGINX Plus para HTTP/2 funciona perfeitamente com seus sites e aplicativos existentes, sem exigir nenhuma alteração neles e apenas alterações mínimas na configuração do NGINX Plus. O NGINX Plus R7 é totalmente compatível com versões anteriores e pode fornecer tráfego HTTP/1.x e HTTP/2 em paralelo, para a melhor experiência, não importa qual navegador seus usuários escolherem.
Para facilitar a transição para HTTP/2, o NGINX Plus atua como um “gateway HTTP/2”. No front-end, o NGINX Plus se comunica via HTTP/2 com navegadores web clientes que o suportam, e no back-end ele se comunica via HTTP/1.x (ou FastCGI, SCGI, uWSGI, etc.) como antes. Isso significa que servidores e aplicativos proxy do NGINX Plus não serão afetados pela mudança para HTTP/2 e nem precisam saber qual versão HTTP seus clientes estão usando.
Para oferecer suporte a HTTPS e HTTP/2 lado a lado, o NGINX Plus oferece suporte às extensões Next Protocol Negotiation (NPN) e Application‑Layer Protocol Negotiation (ALPN) em TLS. Essas extensões são usadas para atualizar facilmente uma conexão HTTPS para HTTP/2 se tanto o cliente quanto o servidor suportarem HTTP/2.
A única alteração de configuração necessária é adicionar o parâmetro http2
às diretivas de escuta
existentes. Observe que o HTTP/2 só é suportado quando o parâmetro ssl
também está incluído:
servidor { ouvir 443 ssl http2 default_server; }
Para habilitar o suporte HTTP/2, instale o pacote nginx-plus-http2 do repositório NGINX Plus. Este pacote não suporta SPDY/3.1. Os pacotes padrão nginx-plus e nginx-plus-extras oferecem suporte a SPDY/3.1 em vez de HTTP/2 e atualmente são recomendados para sites de produção devido ao suporte mais amplo do navegador e à maturidade do código. Observe que atualmente não criamos uma versão habilitada para HTTP/2 do pacote nginx-plus-extras .
Para saber mais sobre HTTP/2:
O NGINX Plus R7 inclui uma série de melhorias de desempenho que podem ajudar seus aplicativos a ter um desempenho ainda melhor. Ele adiciona suporte para otimização de pool de threads , o que alivia operações de disco potencialmente bloqueadoras e melhora o desempenho de cargas de trabalho (como cache de conteúdo) que envolvem E/S de disco pesadas. O NGINX Plus R7 também inclui a otimização de fragmentação de soquete (é necessário Linux 3.9+ ou Dragonfly BSD) que melhora a eficiência em servidores grandes e multicore, onde um grande número de processos nginx manipulam o tráfego. Eles foram testados em campo em implantações NGINX Open Source e agora são totalmente suportados como parte do NGINX Plus.
Usar pools de threads no NGINX Plus pode proporcionar um desempenho 9x melhor. É bem sabido que o NGINX usa uma abordagem assíncrona e orientada a eventos para lidar com conexões . Mas a abordagem assíncrona e orientada a eventos ainda tem um problema: bloqueio. No Linux, as operações de disco são bloqueadas, portanto, durante operações que envolvem muita E/S de disco, o NGINX pode passar muito tempo bloqueando em vez de fazer trabalho produtivo.
Alocar um pool de threads que manipulam E/S de disco alivia esse problema. Em vez de ir para o disco, o processo de trabalho do NGINX transfere a operação de E/S para um thread disponível no pool e depois volta a processar o tráfego normalmente. Quando a operação do disco é concluída, o processo de trabalho do NGINX é notificado e pode continuar qualquer trabalho que ainda precise ser feito para atender à solicitação.
Para habilitar pools de threads, basta adicionar a diretiva aio
threads
a um bloco de localização
:
localização / { raiz / armazenamento; threads aio ; }
Para uma visão geral completa dos pools de threads no NGINX, consulte esta postagem do blog .
A fragmentação de soquetes foi introduzida pela primeira vez no NGINX 1.9.1. Este recurso aproveita a opção de soquete SO_REUSEPORT
introduzida na versão 3.9 do kernel Linux. Quando a opção está habilitada, o próprio kernel do Linux distribui novas conexões uniformemente entre os processos de trabalho do NGINX em um sistema round-robin. Os processos de trabalho então fazem o trabalho de limitação de solicitações, armazenamento em cache, balanceamento de carga e tudo o mais que você configurou.
Sem SO_REUSEPORT
, novas conexões são disponibilizadas para todos os processos de trabalho disponíveis. O primeiro a tirar uma conexão da fila a obtém. Como não há um algoritmo para distribuir a carga uniformemente, ela pode facilmente ficar distorcida, com alguns processos de trabalho assumindo a maior parte da carga enquanto outros são subutilizados. Também é ineficiente ter processos brigando por pacotes, pois isso pode levar à contenção de bloqueio.
O particionamento de soquete pode melhorar o desempenho em até 3x, garantindo que o trabalho seja distribuído uniformemente entre os processos de trabalho do NGINX. Para habilitar essa funcionalidade, adicione o novo parâmetro reuseport
às diretivas de escuta
existentes.
servidor {ouvir 12345 reutilização ; #...}
Para saber mais sobre esse recurso, consulte esta postagem do blog .
Observação : Este recurso requer o kernel Linux versão 3.9 ou posterior. O Ubuntu 13.10 e posteriores e o Red Hat Enterprise Linux 7 e posteriores incluem a funcionalidade necessária.
O NGINX Plus R7 adiciona ainda mais recursos para melhorar a segurança dos seus aplicativos. Esta seção fornece uma visão geral desses recursos.
Novos recursos para proxy TCP e balanceamento de carga melhoram o controle de acesso (limite por endereço IP), a limitação de conexão (limite o número de conexões simultâneas por cliente ou serviço) e o uso da largura de banda (limite a largura de banda upstream ou downstream por conexão). Esses recursos já estão disponíveis para balanceamento de carga HTTP e são usados com grande sucesso para medição de API e proteção contra DDoS.
Para mais detalhes, consulte a postagem do blog relacionada, Balanceamento de carga TCP no NGINX Plus R7<.htmlspan> .
Em resposta à demanda popular, o NGINX Plus R7 pode fazer proxy e balancear carga de aplicativos que usam o Microsoft NT LAN Manager ( NTLM ) para autenticação. NTLM é um protocolo de autenticação usado por muitos produtos da Microsoft, especialmente com aplicativos legados.
Nosso suporte ao NTLM atende ao requisito de segurança de que as conexões com servidores de backend sejam mantidas ativas, mas não multiplexadas, para que cada cliente autenticado pelo NTLM tenha uma conexão dedicada exclusiva com o servidor de backend.
Para habilitar o suporte NTLM, adicione a diretiva ntlm
na configuração dos grupos upstream HTTP:
backend upstream { servidor 192.168.1.10; servidor 192.168.1.11; ntlm ; }
Agora você pode implantar com segurança o NGINX como um proxy, balanceador de carga e acelerador HTTP/2 na frente de aplicativos Microsoft, oferecendo suporte à maior variedade possível de dispositivos clientes.
O NGINX Plus fornece monitoramento e estatísticas detalhadas para facilitar a observação, a otimização e a depuração de aplicativos e infraestrutura. Com base nessa capacidade, o NGINX Plus R7 vem carregado com novos contadores e estatísticas. Esses contadores ajudam você a ajustar suas implantações do NGINX Plus e a tomar decisões informadas sobre quando você pode precisar aumentar ou diminuir a escala para lidar com mais carga. As novas estatísticas e contadores são:
499
erros – Contador por servidor que rastreia499
erros, que ocorrem quando o cliente fecha a conexão antes que o servidor de backend termine de processar sua solicitação. Um pouco499
erros são aceitáveis (as pessoas geralmente fecham seus navegadores no meio de uma sessão), mas um grande número pode indicar que o servidor está sobrecarregado e demorando muito para processar solicitações.Como todos os outros contadores, você habilita os novos contadores incluindo a diretiva api
na configuração.
O painel do NGINX Plus foi bastante aprimorado no R7, exibindo informações importantes do sistema em um formato conciso, mesmo para configurações grandes e complexas:
Para saber mais, consulte a postagem do blog relacionada, O novo painel do NGINX Plus<.htmla>.
O NGINX Plus R7 tem uma série de melhorias adicionais que não se enquadram em nenhuma das categorias acima:
start
, end
e offset
em URIs HLS .m3u8 . Isso permite que os editores de conteúdo publiquem facilmente links para fragmentos de um fluxo de vídeo.Modificação de conteúdo – Anteriormente, o NGINX Plus podia fazer apenas uma alteração simples no conteúdo de uma resposta, substituindo uma string por outra. A diretiva sub_filter
foi estendida para oferecer suporte a variáveis e cadeias de substituições, possibilitando alterações mais complexas.
Os recursos expandidos de modificação de conteúdo facilitam a adaptação do conteúdo da web, por exemplo, alterando o método ( https:// em vez de http:// ), o domínio ou outros elementos de caminho em hiperlinks no conteúdo da mensagem. Você também pode usá-lo para inserir conteúdo em páginas HTML, como texto padrão ou trechos de JavaScript, sem precisar modificar o conteúdo HTML original.
$upstream_connect_time
– Uma nova variável NGINX que rastreia o tempo que leva para se conectar a um servidor de backend, facilitando a identificação de servidores lentos.‑T
no comando nginx
despeja a configuração NGINX analisada no stdout em um formato claro e padronizado. Isso é útil para fins de arquivamento ou ao registrar um tíquete de suporte.proxy_bind
, proxy_protocol
e tcp_nodelay
, e o parâmetro backlog
para a diretiva listen
, agora são suportados para tráfego TCP (módulo stream ), bem como para tráfego HTTP. Para mais detalhes, consulte Balanceamento de carga TCP no NGINX Plus R7<.htmlspan> .Se você usar o Phusion Passenger Open Source com o NGINX Plus (a diretiva passenger_root
está incluída na sua configuração), você deve atualizar seu tempo de execução do Passenger para a versão 5.0.15 ao mesmo tempo em que atualiza para o pacote nginx-plus-extras do NGINX Plus R7 . Execute estas etapas (os comandos são apropriados para o Ubuntu):
Pare o NGINX Plus:
# serviço nginx stop
Atualize seu tempo de execução Phusion Passenger para 5.0.15:
# apt-get install passageiro
Atualize o pacote NGINX Plus Extras para R7:
# apt-get install nginx-plus-extras
Faça as atualizações necessárias nas diretivas de configuração do NGINX Plus, conforme descrito nas notas de atualização do Phusion Passenger.
Inicie o NGINX Plus:
# serviço nginx start
Instruções completas de instalação e atualização estão disponíveis no portal do cliente do NGINX Plus.
Se você estiver executando o NGINX Plus, recomendamos fortemente que atualize para a versão 7 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 expandir e entregar seus aplicativos.
spdy
em todas as diretivas listen
na sua configuração (substitua-o pelos parâmetros http2
e ssl
para habilitar o suporte ao HTTP/2). Com o pacote nginx-plus-http2 , o NGINX Plus falha ao iniciar se alguma diretiva de escuta
tiver o parâmetro spdy
."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."