Acerca de Angie#
Angie /andʒi/ es un servidor web eficiente, potente y escalable que fue bifurcado de nginx:
Concebido por ex-desarrolladores del equipo original para ir más allá de la visión anterior y actuar como un reemplazo directo sin cambios importantes en la configuración de módulos o configuración.
Incluye la mayoría de las capacidades de nginx 1.31.2 y una serie de nuevas características.
Construimos paquetes binarios para una variedad de sistemas y arquitecturas, así como imágenes Docker. El código fuente está abierto en nuestros repositorios públicos bajo una licencia tipo BSD.
Además, una versión comercial con características adicionales se comercializa como Angie PRO.
Una selección de paquetes Angie prefabricados, imágenes Docker y opciones de compilación de código fuente.
Control de inicio y tiempo de ejecución; configuración, módulos, directivas y variables.
Resolución de problemas técnicos con Angie, rutas de retroalimentación disponibles.
Información para desarrolladores que quieren contribuir al proyecto.
Versión actual#
Angie 1.12.1 y Angie PRO 1.12.1 fueron lanzadas el 17 de julio de 2026. Las nuevas versiones aparecen trimestralmente; entre medias, publicamos correcciones urgentes y actualizaciones importantes.
Consulta también el historial completo de versiones para Angie y Angie PRO.
Ventajas de Angie sobre nginx#
Ventajas principales disponibles en la versión gratuita de código abierto de Angie:
Observabilidad y monitorización
Exposición de información básica sobre el servidor web, su configuración, así como métricas de servidores proxy, conexiones de clientes, zonas de memoria compartida, certificados TLS y muchas otras cosas a través de una interfaz RESTful API en formato JSON.
Recopilación de métricas personalizadas arbitrarias para tráfico HTTP y stream en tiempo real con el módulo Metric, utilizando métodos de agregación configurables (contadores, histogramas, medias móviles, etc.); las métricas se agrupan por claves arbitrarias y se exponen a través de la API de estadísticas.
Exportación de estadísticas en formato Prometheus con plantillas personalizables.
Registro de errores mejorado con la directiva error_log: filtrado de mensajes con el parámetro
filter=, salida en JSON con el parámetroformat=y una tasa de registro configurable con el parámetrorate=, además de etiquetas personalizadas mediante la directiva error_log_user_tag.Monitorización del servidor a través del navegador con la herramienta de monitorización visual Console Light. Ver la demo en línea: https://console.angie.software/
TLS y seguridad
El cliente ACME en Angie, habilitado en nuestros paquetes e imágenes, de modo que no hay que instalar ningún módulo aparte: emisión y renovación automáticas de certificados TLS con validación de dominio por HTTP, DNS y TLS-ALPN. La validación por DNS abre la puerta a los certificados comodín (wildcard); la misma automatización está disponible en el contexto
streama través del módulo Stream ACME, y la directiva acme_hook permite que un manejador personalizado complete cualquiera de estos métodos de validación.Soporte de TLS 1.3 Early Data (0-RTT) en el módulo
stream.Soporte del lado del servidor y del lado del cliente para NTLS cuando se utiliza la biblioteca TLS TongSuo, habilitado en tiempo de compilación.
Proxy y balanceo de carga
Actualización dinámica de grupos upstream basada en eventos y etiquetas de contenedores Docker (o herramientas similares como Podman) sin necesidad de recargar el servidor.
Balanceo por tiempo de respuesta real: las solicitudes van al servidor con el menor tiempo de respuesta medido, registrado como una media móvil exponencialmente ponderada cuyo factor de suavizado es configurable, desde un promediado inerte hasta una reacción rápida ante los picos.
Reincorporación gradual de servidores upstream tras un fallo utilizando la opción
slow_startde la directiva server tanto en upstreams HTTP como en stream.Vinculación de sesión para los protocolos del módulo
stream(TCP/UDP): todas las conexiones dentro de una misma sesión se dirigen al mismo servidor proxy.Retirada gradual de un servidor proxy en el módulo
streamcon la opcióndrainde la directiva server: el servidor deja de aceptar nuevas conexiones, pero continúa sirviendo las sesiones ya vinculadas a él.
Protocolos y tráfico
Soporte de HTTP/3 de nivel de producción tanto para las conexiones con clientes como con servidores proxy, con la posibilidad de usar distintas versiones del protocolo (HTTP/1.x, HTTP/2, HTTP/3) de forma independiente en cada lado (el HTTP/3 de nginx se limita al lado del servidor y sigue siendo experimental, con degradaciones tras las recargas).
Un servidor DoH integrado (DNS over HTTPS, RFC 8484): acepta consultas DNS a través de HTTP/HTTPS y las reenvía a grupos de servidores DNS mediante UDP o TCP.
Envío de PROXY Protocol v2 a los servidores proxy en el módulo
stream, con la posibilidad de establecer valores TLV arbitrarios mediante la directiva proxy_protocol_tlv.Conversión de imágenes entre formatos, incluyendo a HEIC y AVIF, con el parámetro
convertde la directiva image_filter.Ampliación de las capacidades de autorización y balanceo para el protocolo MQTT con la directiva mqtt_preread bajo
stream.Información para decisiones de balanceo con cookies de sesión del protocolo RDP a través de la directiva rdp_preread bajo
stream.Limitación de la tasa de transferencia de archivos MP4 proporcionalmente a su tasa de bits, reduciendo así la carga de ancho de banda.
Soporte para los métodos de autenticación XOAUTH2 y OAUTHBEARER en el proxy de correo.
Configuración y operación más simples
Configuración automática del resolutor DNS a partir de
/etc/resolv.conf: el archivo se relee ante cualquier cambio, eliminando la necesidad de especificar manualmente las direcciones de los servidores DNS.Varias expresiones coincidentes a la vez en una sola directiva
location: los bloques con configuraciones compartidas se pueden combinar.La directiva goto del módulo rewrite, que realiza una redirección interna a una ubicación con nombre sin modificar el URI, en lugar de las soluciones alternativas basadas en
try_filesoerror_page.Volcado de la zona de memoria compartida en proxy_cache_path al disco: el contenido del índice de caché se preserva entre reinicios y actualizaciones, lo que elimina el retraso de carga de la caché y pone el servidor en línea aún más rápido.
La directiva time_format, que define una variable con un formato de hora personalizado, admitiendo especificadores similares a
strftime()y%Lpara milisegundos.Paquetes binarios precompilados para muchos módulos populares de terceros.
Características adicionales de Angie PRO#
Angie PRO comercial añade lo siguiente a las características de la versión de código abierto:
Configuración dinámica y gestión
Gestión de servidores proxy a través de una API de configuración dinámica RESTful: permite incorporar servidores al balanceo y retirarlos de él, así como cambiar sus pesos y otros parámetros sobre la marcha, sin recargar los procesos worker. La consola de monitorización visual Console Light también puede utilizarse para gestionar el servidor desde su navegador.
Sobrescritura de la firma del servidor en las páginas de error y en el campo de cabecera
Servercon un valor arbitrario mediante la directiva server_tokens.
Balanceo avanzado y tolerancia a fallos
Balanceo por retroalimentación: los peers se seleccionan por el valor de una variable; se supone que proviene de los propios peers, que informan de su carga de CPU u otras métricas.
Cola de espera para solicitudes, configurada mediante la directiva queue en el bloque
upstream: si no se puede elegir un servidor para una solicitud en el primer intento, por ejemplo durante un pico de carga, la solicitud entra en la cola en lugar de ser rechazada de inmediato.Comprobación proactiva del estado de los servidores proxy mediante el envío periódico de solicitudes de sondeo: un servidor defectuoso sale del balanceo antes de que le llegue una solicitud de cliente, no después.
La directiva no_port en un bloque
upstreamdel módulostream, que desvincula el puerto de los servidores del grupo: el puerto se indica en la directiva proxy_pass, de modo que un mismo grupo puede servir para proxy a distintos puertos sin duplicar la lista de servidores.La directiva backup_switch en el bloque
upstream: los servidores de respaldo pueden continuar atendiendo solicitudes cuando los servidores primarios vuelven a estar accesibles.
Sesiones, conexiones y almacenamiento en caché
El modo sticky learn con almacenamiento de sesiones en un almacén externo, lo que permite unir varios balanceadores en un clúster.
Vinculación condicional de conexiones de cliente a la conexión del servidor proxy, que también permite el proxy de NTLM.
La directiva proxy_bind, que evalúa las variables después de cada selección de servidor proxy: la dirección de salida puede depender del servidor seleccionado; por ejemplo, mediante la variable $upstream_current_addr.
Fragmentación de caché en el módulo de proxy, que permite distribuirla entre diferentes discos dependiendo de las propiedades de la respuesta.