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âmetro format= e uma taxa de registro configurável com o parâmetro rate=, 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 stream usando 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_start da 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 stream através da opção drain da 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 convert da 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_files ou error_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 %L para 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 Server por 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 upstream do módulo stream, 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.