Temos o prazer de anunciar a disponibilidade do NGINX Plus Release 30 (R30). Baseado no NGINX Open Source, o NGINXPlus é o único software tudo-em-um de servidor web, balanceador de carga, proxy reverso, cache de conteúdo e gateway de API.
Os recursos novos e aprimorados do NGINX Plus R30 incluem:
Completando o lançamento, estão novos recursos e correções de bugs herdados do NGINX Open Source e atualizações do módulo JavaScript do NGINX.
Observação : Se você estiver atualizando de uma versão diferente do NGINX Plus R29, não deixe de conferir a seção Alterações importantes no comportamento em blogs de anúncios anteriores para todas as versões entre sua versão atual e esta.
listen … http2
A diretiva listen … http2
foi descontinuada no NGINX 1.25.1. A verificação de configuração do NGINX usando nginx -t
emite um aviso sobre esse efeito.
nginx -t
nginx: [aviso] a diretiva "listen ... http2" está obsoleta, use a diretiva "http2" em vez disso em etc/nginx/nginx.conf :15
nginx: a sintaxe do arquivo de configuração /etc/nginx/nginx.conf está ok
nginx: o teste do arquivo de configuração /etc/nginx/nginx.conf foi bem-sucedido
Todos os usuários existentes desta diretiva são fortemente aconselhados a atualizar o NGINX e usar a diretiva http2, que habilita o HTTP/2 por servidor.
Alterar isto:
ouvir 443 ssl http2;
Para isso:
ouvir 443 ssl;
http2 em;
Versões anteriores do NGINX Plus usavam a biblioteca “libmaxminddb” do repositório Amazon Linux 2 EPEL para construir o módulo GeoIP2 . O repositório EPEL não fornece mais esta biblioteca, nem ela é acessível nativamente na distribuição Amazon Linux 2. Portanto, o módulo não está mais disponível no NGINX Plus R30, pois não há uma maneira viável de criá-lo para o Amazon Linux 2.
A diretiva mqtt_rewrite_buffer_size
, usada para especificar o tamanho do buffer para construir mensagens MQTT, foi substituída pela diretiva mqtt_buffers
. A nova diretiva permite especificar o número de buffers que podem ser alocados por conexão, além de especificar o tamanho de cada buffer.
O número da versão da API NGINX Plus foi atualizado de 8 para 9 para refletir a adição das métricas por trabalhador descritas em Telemetria de conexão por trabalhador . Os números de versões anteriores ainda funcionam, mas a saída não inclui métricas adicionadas em versões posteriores da API.
Novos sistemas operacionais suportados:
Sistemas operacionais mais antigos removidos:
Sistemas operacionais mais antigos foram descontinuados e programados para remoção no NGINX Plus R31:
O HTTP/3 sobre QUIC era um recurso muito aguardado e solicitado por muitos de nossos clientes empresariais, e estamos felizes em apresentá-lo oficialmente no NGINX Plus R30. Esta é uma nova tecnologia e implementação na qual continuaremos a nos concentrar em versões futuras. Aconselhamos os usuários do NGINX Plus a primeiro testá-lo em um ambiente de não produção e compartilhar qualquer feedback valioso conosco.
O NGINX Plus conta com OpenSSL para comunicação segura e funcionalidade criptográfica, fazendo uso das bibliotecas SSL/TLS fornecidas com os sistemas operacionais. No entanto, como as interfaces TLS do QUIC não são suportadas pelo OpenSSL no momento deste lançamento, bibliotecas de terceiros são necessárias para fornecer a funcionalidade TLS ausente exigida pelo HTTP/3.
Para resolver essa preocupação, a equipe do NGINX desenvolveu uma Camada de Compatibilidade OpenSSL , eliminando a necessidade de criar e enviar bibliotecas TLS de terceiros, como quictls, BoringSSL e LibreSSL. Isso ajuda a gerenciar a experiência QUIC+HTTP/3 de ponta a ponta no NGINX sem o fardo de uma implementação TLS personalizada nem a dependência de cronogramas e roteiros de bibliotecas de terceiros. Planejamos aprimorar a Camada de Compatibilidade OpenSSL em versões futuras com mais recursos e opções, como suporte para 0-RTT.
Aqui está a configuração QUIC+HTTP/3:
http {
log_format quic '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" "$http3"';
access_log logs/access.log quic;
server {
# para melhor compatibilidade é recomendado
# usar a mesma porta para quic e https
listen 8443 quic reuseport;
listen 8443 ssl;
ssl_certificate certs/example.com.crt;
ssl_certificate_key certs/example.com.key;
location / {
# necessário para que os navegadores os direcionem para a porta quic
add_header Alt-Svc 'h3=":8443"; ma=86400';
}
}
}
O suporte QUIC+HTTP/3 no NGINX Plus R30 está disponível como um único binário – diferente do suporte experimental HTTP/3 introduzido no NGINX Plus R29 , que tinha um binário separado para o nginx quic. Essa melhoria facilita a implantação da funcionalidade em seu ambiente.
Observação: Com o NGINX Plus R30, estamos encerrando o suporte e as atualizações para o binário QUIC autônomo e planejamos removê-lo como uma opção de download ainda este ano.
Os usuários do NGINX Plus agora podem monitorar o total de conexões por processo de trabalho para ajustar adequadamente a diretiva worker_connections
. Essa melhoria dá aos usuários melhor visibilidade sobre como as conexões são distribuídas entre os trabalhadores. Ser capaz de ajustar as conexões dos trabalhadores também ajuda você a avaliar melhor sua implantação do NGINX.
As métricas de conexão por trabalhador estão disponíveis na REST API. Para recuperar métricas de conexão por trabalhador, use o endpoint …/api/9/workers
.
Para recuperar métricas de conexão por trabalhador para um trabalhador individual, use o ponto de extremidade .../api/9/workers/< worker id >
. O ID do trabalhador
tem um índice de base 0.
Aqui está um exemplo de resposta:
{
{
"eu ia": 0,
"pid": 2346,
"conexões": {
"aceito": 1,
"caiu": 0,
"ativo": 1,
"ocioso": 0
},
"http": {
"solicitações": {
"total": 15,
"atual": 1
}
}
},
{
"identidade": 1,
"pid": 1234,
"conexões": {
"aceito": 3,
"caiu": 0,
"ativo": 1,
"ocioso": 0
},
"http": {
"solicitações": {
"total": 15,
"atual": 1 } } }, ... }
As métricas de conexão por trabalhador estão disponíveis no Painel de monitoramento de atividades ao vivo do NGINX Plus , conforme mostrado abaixo. Acesse uma demonstração ao vivo deste recurso em demo.nginx.com.
O painel mostra as informações abaixo sobre conexões e solicitações do NGINX Plus.
Conexões:
Pedidos:
Para reduzir o tempo de resposta para resolução de problemas, o pacote de diagnóstico simplifica o processo de coleta de dados necessários para solucionar problemas no seu ambiente NGINX. O pacote de diagnóstico também ajuda a evitar discrepâncias e atrasos associados à solicitação e coleta manual de informações necessárias para solucionar problemas, tornando a interação entre os clientes do NGINX Plus e o Suporte da F5 mais eficiente.
O pacote de diagnóstico coleta:
ps
, lsof
, vmstat
, etc.)systemd
, etc.Nosso objetivo com a adição do pacote de diagnóstico é ser transparente com os usuários sobre quais comandos o script dentro do pacote executa e quais dados estão sendo coletados. Consulte a página do Pacote de diagnóstico NGINX Plus para obter mais informações.
Observação: A disponibilidade do pacote de diagnóstico está sendo anunciada como parte da versão atual do NGINX Plus R30, no entanto, o pacote de diagnóstico não depende realmente da versão. No futuro, planejamos atualizá-lo com base no feedback de vocês e do Suporte F5 com a intenção de melhorar o processo de coleta de dados de solução de problemas.
Com as melhorias no consumo de memória feitas no módulo de filtro Message Queuing Telemetry Transport (MQTT), agora há um aumento de 4 a 5 vezes na taxa de transferência.
A diretiva mqtt_rewrite_buffer_size
foi removida. Em vez disso, a nova directiva mqtt_buffers <num> <tamanho>
foi introduzido para especificar quantos buffers o módulo pode alocar por conexão, juntamente com o tamanho de cada buffer. O número padrão de buffers é 100 e o tamanho padrão de cada buffer é 1024 bytes, o que torna o valor padrão da variável mqtt_buffers <100> <1024>
.
O NGINX Plus agora preserva os tempos de expiração de nomes DNS para hosts upstream resolvidos dinamicamente em todas as recargas, eliminando a necessidade de nova resolução na recarga de configuração. Antes desta atualização, as resoluções de DNS eram acionadas para todos os upstreams. Com esta atualização, o NGINX preserva as resoluções de DNS e os tempos de expiração para todos os upstreams e aciona resoluções de DNS apenas para upstreams novos ou alterados na recarga.
Essa otimização terá maior impacto em ambientes NGINX que contenham um grande número de hosts upstream. Se você tiver 100 ou mais hosts upstream na sua configuração NGINX, as otimizações serão mais evidentes.
O NGINX Plus R30 é baseado no NGINX Open Source 1.25.1 e herda alterações funcionais, recursos e correções de bugs feitos desde o lançamento do NGINX Plus R29 (no NGINX 1.25.0 e 1.25.1).
server_push
teve adoção mínima e só pôde ser usado em casos de uso muito limitados. (De acordo com a documentação de referência do IETF 102, ele foi usado em apenas 0,04% das sessões. De acordo com o RFC 913, era “difícil de ser usado efetivamente”. O push do servidor HTTP/2 foi desabilitado na versão 106 do Chrome . Como parte dessa mudança, as diretivas http2_push
, http2_push_preload
e http2_max_concurrent_pushes
se tornaram obsoletas.ssl
obsoleta não é mais suportada. A diretiva ssl
foi descontinuada no NGINX 1.15.0 e substituída pelo parâmetro ssl
da diretiva listen. A diretiva ssl obsoleta foi removida.listen … http2
está obsoleta. Os usuários são aconselhados a usar a diretiva http2
.listen port_num http2
), somente conexões HTTP/2 poderão ser criadas. Um soquete de escuta h2 suporta HTTP/1.1 e HTTP/2 com negociação de protocolo via ALPN. Entretanto, na implementação existente, os clientes HTTP/1.1 falham no soquete, impedindo o uso do HTTP Upgrade como meio de negociar o protocolo. Essa alteração permite suporte simultâneo de HTTP/1.1 e HTTP/2 em um soquete TCP simples ao usar HTTP/2.$sent_http_*
está habilitada. Um defeito na lógica de avaliação de variáveis de cabeçalho múltiplo $sent_http_
levou a possíveis estouros de buffer quando certos elementos foram limpos, mas permaneceram na lista vinculada. Esse problema se manifestou quando módulos de terceiros foram usados para substituir valores de vários cabeçalhos. A atualização introduz verificações de limites refinadas, garantindo manuseio e avaliação mais seguros dessas variáveis.quic_mtu
removidaParâmetro http3 removido da diretiva listen
erro de segmentação
caso uma expressão regular (regex) estude a alocação de lista que falhe.Para obter a lista completa de novas alterações, recursos, correções de bugs e soluções alternativas herdadas de versões recentes, consulte o arquivo NGINX CHANGES .
O NGINX Plus R30 incorpora alterações do módulo NGINX JavaScript (njs) versão 0.8.0.
ngx.build , ngx.conf_file_path , ngx.error_log_path , ngx.prefix , ngx.version , ngx.version_number
e ngx.worker_id
.js_shared_dict_zone
para http e stream que permite declarar um dicionário compartilhado entre processos de trabalho.Matriz.from(), Matriz.prototype.toSorted(), Matriz.prototype.toSpliced(), Matriz.prototype.toReversed()
.%TypedArray%.prototype.toSorted(), %TypedArray%.prototype.toSpliced(), %TypedArray%.prototype.toReversed()
.algorithm, extractable, type, usages
.r.requestBody()
do módulo http, que foi descontinuado na versão 0.5.0. A propriedade r.requestBuffer
ou r.requestText
deve ser usada em seu lugar.r.responseBody()
do módulo http, que foi descontinuado na versão 0.5.0. A propriedade r.responseBuffer
ou r.responseText
deve ser usada em seu lugar.r.internalRedirect()
ao filtrar no módulo http
.retval
. Essa alteração quebra a compatibilidade com a extensão C para njs, exigindo a modificação do código.String.bytesFrom(), String.prototype.fromBytes(), String.prototype.fromUTF8(), String.prototype.toBytes(), String.prototype.toUTF8(), String.prototype.toString(codificação)
.r.status
setter ao filtrar no módulo http
.de localização
no módulo http
.сrypto.getRandomValues()
.Date.parse()
corrigido com formato ISO-8601 e deslocamento de tempo UTC.Para uma lista abrangente de todos os recursos, alterações e correções de bugs, consulte o log de alterações do njs.
Se você estiver executando o NGINX Plus, recomendamos fortemente que você atualize para o NGINX Plus R30 o mais rápido possível. Além de todos os excelentes novos recursos, você também obterá diversas correções e melhorias adicionais, e estar atualizado ajudará o NGINX 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. Você pode usá-lo para casos de uso de segurança, balanceamento de carga e gateway de API, ou como um servidor web totalmente suportado com APIs aprimoradas de monitoramento e gerenciamento. Comece hoje mesmo com um teste gratuito de 30 dias .
"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."