Sobre o Angie#
Angie /andʒi/ é um servidor web eficiente, poderoso e escalável que foi derivado do nginx:
Concebido por ex-desenvolvedores da equipe original para ir além da visão anterior e atuar como um substituto direto sem grandes mudanças na configuração de módulos ou configuração.
Inclui a maioria das capacidades do nginx 1.31.2 e uma série de novos recursos.
Construímos pacotes binários para uma variedade de sistemas e arquiteturas, bem como imagens Docker. O código-fonte está aberto em nossos repositórios públicos sob uma licença similar à BSD.
Além disso, uma versão comercial com recursos adicionais é comercializada como Angie PRO.
Uma escolha de pacotes Angie prontos, imagens Docker e opções de compilação do código-fonte.
Controle de inicialização e tempo de execução; configuração, módulos, diretivas e variáveis.
Resolução de problemas técnicos com o Angie, rotas de feedback disponíveis.
Informações para desenvolvedores que desejam contribuir para o projeto.
Versão Atual#
Angie 1.12.1 e Angie PRO 1.12.1 foram lançados em 17 de julho de 2026. Novas versões aparecem trimestralmente; no intervalo, publicamos correções urgentes e atualizações importantes.
Veja também o histórico completo de versões para Angie e Angie PRO.
Vantagens do Angie sobre o nginx#
Principais vantagens disponíveis na versão gratuita de código aberto do Angie:
Observabilidade e monitoramento
Exposição de informações básicas sobre o servidor web, sua configuração, bem como métricas de servidores com proxy, conexões de cliente, zonas de memória compartilhada, certificados TLS e muitas outras coisas através de uma interface API RESTful em formato JSON.
Coleta de métricas personalizadas para tráfego HTTP e stream em tempo real com o módulo Metric, usando métodos de agregação configuráveis (contadores, histogramas, médias móveis e assim por diante); as métricas são agrupadas por chaves arbitrárias e expostas através da API de estatísticas.
Exportação de estatísticas no formato Prometheus com modelos personalizáveis.
Registro de erros aprimorado com a diretiva error_log: filtragem de mensagens com o parâmetro
filter=, saída em JSON com o parâmetroformat=e uma taxa de registro configurável com o parâmetrorate=, além de tags personalizadas por meio da diretiva error_log_user_tag.Monitoramento do servidor através do navegador com a ferramenta de monitoramento visual Console Light. Veja a demonstração online: https://console.angie.software/
TLS e segurança
O cliente ACME no Angie, já habilitado em nossos pacotes e imagens, de modo que não há módulo à parte para instalar: emissão e renovação automáticas de certificados TLS com validação de domínio via HTTP, DNS e TLS-ALPN. A validação via DNS abre caminho para certificados wildcard, o ACME também funciona no módulo stream, e métodos de validação não padronizados são conectados pela diretiva acme_hook.
Suporte a TLS 1.3 Early Data (0-RTT) no módulo
streamusando a diretiva ssl_early_data.Suporte do servidor e do cliente para NTLS ao usar a biblioteca TLS TongSuo, habilitada no momento da compilação.
Proxy e balanceamento de carga
Atualização dinâmica de grupos upstream baseada em eventos e rótulos de contêineres Docker (ou ferramentas similares como Podman) sem recarregamento do servidor.
Recomissionamento de servidores upstream após uma falha suavemente usando a opção
slow_startda diretiva server, tanto em upstreams HTTP quanto stream.Fator de suavização configurável do balanceamento por tempo médio de resposta: ele determina o quanto as medições recentes influenciam a média, de uma média inerte a uma reação rápida a picos.
Vinculação de sessão para os protocolos do módulo
stream(TCP/UDP): todas as conexões dentro de uma sessão são direcionadas para o mesmo servidor com proxy.Descomissionamento gradual de um servidor com proxy no módulo
streamatravés da opçãodrainda diretiva server: o servidor para de aceitar novas conexões, mas continua atendendo as sessões já vinculadas a ele.
Protocolos e tráfego
HTTP/3 nas conexões com servidores com proxy, e não apenas com os clientes: a versão do protocolo (HTTP/1.x, HTTP/2, HTTP/3) é escolhida de forma independente em cada lado.
Um servidor DoH embutido (DNS over HTTPS, RFC 8484): aceita consultas DNS por HTTP/HTTPS e as encaminha por proxy para grupos de servidores DNS via UDP ou TCP.
Extensão das capacidades de autorização e balanceamento para o protocolo MQTT com a diretiva mqtt_preread sob
stream.Informação das decisões de balanceamento com cookies de sessão do protocolo RDP através da diretiva rdp_preread sob
stream.Limitação da taxa de transferência de arquivos MP4 proporcionalmente ao seu bitrate, reduzindo assim a carga de largura de banda.
Envio do PROXY Protocol v2 para servidores com proxy no módulo
stream, com a possibilidade de definir valores TLV arbitrários através da diretiva proxy_protocol_tlv.Conversão de imagens entre formatos, incluindo para HEIC e AVIF, com o parâmetro
convertda diretiva image_filter.Suporte aos métodos de autenticação XOAUTH2 e OAUTHBEARER no proxy de mail.
Configuração e operação mais simples
Liberação da zona de memória compartilhada em proxy_cache_path para disco: o conteúdo do índice de cache é preservado entre reinicializações e atualizações, o que elimina o atraso de carregamento do cache e coloca o servidor online ainda mais rápido.
Várias expressões de correspondência de uma vez em uma única diretiva
location: os blocos com configurações compartilhadas podem ser combinados.A diretiva goto no módulo rewrite, que realiza um redirecionamento interno para um location nomeado sem modificar a URI, no lugar de soluções alternativas baseadas em
try_filesouerror_page.Configuração automática do resolver DNS a partir de
/etc/resolv.conf: o arquivo é relido quando é alterado, eliminando a necessidade de especificar os endereços dos servidores DNS manualmente.A diretiva time_format, que define uma variável com um formato de hora personalizado, suportando especificadores no estilo
strftime()e%Lpara milissegundos.Pacotes binários pré-construídos para muitos módulos de terceiros populares.
Recursos do Angie PRO#
O Angie PRO comercial adiciona o seguinte aos recursos da versão de código aberto:
Configuração dinâmica e gerenciamento
Gerenciamento de servidores com proxy através de uma API RESTful de configuração dinâmica: os servidores podem entrar e sair do balanceamento, e seus pesos e outros parâmetros podem ser alterados em tempo real, sem recarregar os processos de trabalho. O console de monitoramento visual Console Light também pode ser usado para gerenciar o servidor em seu navegador.
Substituição da assinatura do servidor em páginas de erro e no campo de cabeçalho
Serverpor um valor arbitrário usando a diretiva server_tokens.
Balanceamento avançado e tolerância a falhas
Balanceamento por feedback: os pares são selecionados pelo valor de uma variável; presume-se que ele venha dos próprios pares, que relatam sua carga de CPU ou outras métricas.
Fila de espera para solicitações, configurada usando a diretiva queue no bloco
upstream: se nenhum servidor puder ser escolhido para uma solicitação na primeira tentativa, por exemplo durante um pico de carga, a solicitação entra na fila em vez de ser rejeitada de imediato.Verificação proativa do estado de servidores com proxy enviando solicitações de sondagem periódicas: um servidor com falha sai do balanceamento antes que uma solicitação de cliente chegue até ele, e não depois.
A diretiva no_port em um bloco
upstreamdo módulostream, que desvincula a porta dos servidores do grupo: a porta é indicada na diretiva proxy_pass, de modo que um mesmo grupo pode servir para proxy em portas diferentes sem duplicar a lista de servidores.A diretiva backup_switch no bloco
upstream: os servidores de backup podem continuar servindo solicitações quando os servidores primários se tornam acessíveis novamente.
Sessões, conexões e cache
Vinculação condicional de conexões de cliente à conexão do servidor com proxy, o que também permite proxy NTLM.
A diretiva proxy_bind, que avalia as variáveis após cada seleção de servidor com proxy: o endereço de saída pode depender do servidor selecionado, por exemplo através da variável $upstream_current_addr.
O modo sticky learn com armazenamento de sessões em um repositório externo, o que permite unir múltiplos balanceadores em um cluster.
Fragmentação de cache no módulo proxy, que permite distribuí-lo entre discos diferentes dependendo das propriedades da resposta.