Angie e Angie PRO atualizados para a versão 1.12.0#
Foram lançados Angie e Angie PRO 1.12.0, uma grande atualização de funcionalidades. O Angie de código aberto ganha balanceamento de carga por tempo de resposta, o modo «learn» do sticky e a drenagem de servidores (portados do Angie PRO), um módulo Metrics para stream, um servidor DNS-over-HTTPS, uma API de certificados, um ACME ampliado, além da filtragem e da saída em formato JSON do log de erros; a versão é baseada no nginx mais recente com túnel CONNECT.
O Angie e sua versão comercial Angie PRO — 1.12.0 — já estão disponíveis, com um amplo conjunto de novos recursos em cada edição. Se a versão 1.11.0 pareceu grande, esta vai ainda mais longe: a lista de mudanças em cada edição ultrapassou 30 itens.
Seis recursos do Angie PRO agora estão disponíveis na edição de código aberto:
Balanceamento de carga pelo tempo médio de resposta, por meio da diretiva
least_timepara servidoreshttpestreamcom proxy: parahttpconsidera-se o tempo de recebimento do cabeçalho ou da resposta completa e, parastream, o tempo de estabelecimento da conexão e de recebimento de bytes. O fator de suavização é configurado pela diretivaresponse_time_factor.O modo
learnda diretivasticky: vinculação de clientes a servidores por chaves geradas dinamicamente. As sessões são armazenadas em memória compartilhada, e a forma de criá-las e localizá-las é configurada de maneira flexível por meio de variáveis, por exemplo por um cookie da resposta do servidor com proxy.O modo
drain: remoção controlada de um servidor da rotação: novas solicitações deixam de ser enviadas a ele enquanto os clientes já vinculados terminam de ser atendidos, e o servidor passa para um novo estadodraining. Implantação sem tempo de inatividade, como deve ser.Tempo médio de resposta na API de estatísticas: as seções
/status/http/upstreams/e/status/stream/upstreams/agora mostram várias métricas por servidor: parahttpo tempo de recebimento do cabeçalho e da resposta completa e, parastream, o tempo de estabelecimento da conexão e de recebimento do primeiro e do último byte. O fator de suavização é definido porresponse_time_factor, com suporte a Prometheus.
Entre as demais novidades de ambas as edições:
Um servidor DNS-over-HTTPS integrado: o novo módulo DoH (RFC 8484) aceita consultas DNS por HTTP/HTTPS e as encaminha para servidores DNS por UDP ou TCP. Colocar no ar seu próprio servidor DoH exige apenas algumas linhas de configuração.
ACME ampliado: certificados para endereços IP (via Let's Encrypt, com suporte a perfis), External Account Binding (EAB) para autoridades de certificação comerciais (DigiCert, SSL.com e outras) por meio de autenticação HMAC, melhor compatibilidade com a SSL.com e servidores semelhantes, e a diretiva
acme_dns_ttlpara provedores que filtram respostas DNS com TTL baixo.DNS sem configuração: a configuração do resolver agora vem habilitada por padrão: o Angie lê o
/etc/resolv.confpor conta própria e monitora suas alterações, de modo que os endereços dos servidores DNS não precisam mais ser informados manualmente; desative-a comresolver off.Registro de erros em um novo patamar: filtragem de mensagens por meio de
filter=e etiquetaserror_log_user_tagpara rotear eventos aos manipuladores, saída do log de erros em formato JSON, um limite de taxa por meio derate=(1000 mensagens por segundo por padrão) e a diretivatime_formatcom suporte astrftime()e%Lpara milissegundos. Além disso, as chaves de sessão SSL podem ser registradas por meio dessl_keylog_fileeproxy_ssl_keylog_file.Configuração mais limpa: a diretiva
gotodo módulorewriterealiza um redirecionamento interno para um location nomeado sem alterar o URI e funciona dentro de um blocoif, dispensando as gambiarras baseadas emtry_fileseerror_page. As páginas de erro integradas e as listagens do AutoIndex ganharam um esquema de cores escuro.Estatísticas e observabilidade: o módulo Metrics agora está disponível também para o módulo
stream: contadores, histogramas e médias móveis por meio da seção de API/status/stream/metric_zones/, com suporte a Prometheus; a nova seção de API/certificates/reúne em um só lugar todos os certificados da configuração e os obtidos pelos clientes ACME, simplificando o controle dos prazos de validade; e a variável$upstream_transportmostra o transporte (TCP ou UDP) escolhido para cada tentativa de conexão com um servidor do grupo.Sincronização com o nginx 1.31.2: toda a sua funcionalidade está incluída, em especial o novo módulo Tunnel para o túnel CONNECT (o Angie como proxy HTTP para tráfego TCP arbitrário), o proxy para servidores por HTTP/2 e a nova variável
$ssl_sigalgscom a lista de algoritmos de assinatura suportados pelo cliente.
Adicionalmente, no Angie PRO:
proxy_passcom porta para grupos de stream: a porta pode ser indicada diretamente noproxy_passpara um grupo de servidores em que ela não está definida. Assim, um mesmo grupo pode ser usado para fazer proxy para portas diferentes: o status de cada servidor é acompanhado de forma unificada, e a indisponibilidade de um servidor é considerada para todas as portas de uma vez. A diretivano_portmarca explicitamente um grupo como não utilizando portas.O
proxy_bindagora avalia as variáveis após a seleção do servidor, de modo que a conexão de saída pode ser vinculada a um endereço que dependa do servidor específico escolhido.A variável
$upstream_current_addrcontém o endereço do servidor upstream atual e está disponível já no momento de sua seleção, o que é útil em conjunto comproxy_bind. Ao contrário de$upstream_addr, sempre contém exatamente um endereço.Alternância atômica de um servidor entre o grupo primário e o de reserva, com uma única solicitação ao campo
backupda API/config.O campo
feedbackna API de estatísticas: ao usar o método de balanceamento de mesmo nome, mostra o peso dinâmico acumulado atual de cada servidor.
Mais detalhes sobre as mudanças:
P.S. A propósito, daqui a uma semana, em 21 de julho, o Angie completa quatro anos, então esta versão também é um pequeno presente para a data. Obrigado a todos que estão conosco!
Tenha um ótimo dia!