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), ACME funciona también en el módulo stream, y los métodos de validación no estándar se conectan con la directiva acme_hook.
Soporte de TLS 1.3 Early Data (0-RTT) en el módulo
streammediante la directiva ssl_early_data.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.
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.Factor de suavizado configurable del balanceo por tiempo medio de respuesta: determina cuánto influyen las mediciones recientes en la media, desde un promediado inerte hasta una reacción rápida ante los picos.
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
HTTP/3 en las conexiones con servidores proxy, y no solo con los clientes: la versión del protocolo (HTTP/1.x, HTTP/2, HTTP/3) se elige de forma independiente en cada lado.
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.
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.
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.Soporte para los métodos de autenticación XOAUTH2 y OAUTHBEARER en el proxy de correo.
Configuración y operación más simples
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.
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.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.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 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é
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.
El modo sticky learn con almacenamiento de sesiones en un almacén externo, lo que permite unir varios balanceadores en un clúster.
Fragmentación de caché en el módulo de proxy, que permite distribuirla entre diferentes discos dependiendo de las propiedades de la respuesta.