Angie y Angie PRO actualizados a la versión 1.12.0#
Se han publicado Angie y Angie PRO 1.12.0, una gran actualización de funcionalidades. Angie de código abierto incorpora el balanceo de carga por tiempo de respuesta, el modo «learn» de sticky y el drenaje de servidores (portados desde Angie PRO), un módulo Metrics para stream, un servidor DNS-over-HTTPS, una API de certificados, un ACME ampliado y el filtrado y la salida en formato JSON del registro de errores; la versión se basa en el nginx más reciente con túnel CONNECT.
Angie y su versión comercial Angie PRO — 1.12.0 — ya están disponibles, con un amplio conjunto de nuevas capacidades en cada edición. Si la versión 1.11.0 pareció grande, esta va aún más lejos: la lista de cambios en cada edición superó los 30 elementos.
Seis funcionalidades de Angie PRO ya están disponibles en la edición de código abierto:
Balanceo de carga por el tiempo medio de respuesta, mediante la directiva
least_timepara servidoreshttpystreamproxados: parahttpse tiene en cuenta el tiempo de recepción de la cabecera o de la respuesta completa, y parastreamel tiempo de establecimiento de la conexión y de recepción de bytes. El factor de suavizado se configura con la directivaresponse_time_factor.El modo
learnde la directivasticky: vinculación de clientes a servidores mediante claves generadas dinámicamente. Las sesiones se almacenan en memoria compartida, y la forma de crearlas y buscarlas se configura de manera flexible a través de variables, por ejemplo por una cookie de la respuesta del servidor proxado.El modo
drain: retirada controlada de un servidor de la rotación: las nuevas solicitudes dejan de enviársele mientras los clientes ya vinculados terminan de atenderse, y el servidor pasa a un nuevo estadodraining. Despliegue sin tiempo de inactividad, como debe ser.Tiempo medio de respuesta en la API de estadísticas: las secciones
/status/http/upstreams/y/status/stream/upstreams/ahora muestran varias métricas por servidor: parahttpel tiempo de recepción de la cabecera y de la respuesta completa, y parastreamel tiempo de establecimiento de la conexión y de recepción del primer y del último byte. El factor de suavizado se establece conresponse_time_factor, con soporte para Prometheus.
Entre las demás novedades de ambas ediciones:
Un servidor DNS-over-HTTPS integrado: el nuevo módulo DoH (RFC 8484) acepta consultas DNS sobre HTTP/HTTPS y las redirige a servidores DNS por UDP o TCP. Levantar tu propio servidor DoH requiere solo unas pocas líneas de configuración.
ACME ampliado: certificados para direcciones IP (mediante Let's Encrypt, con soporte de perfiles), External Account Binding (EAB) para autoridades de certificación comerciales (DigiCert, SSL.com y otras) mediante autenticación HMAC, mejor compatibilidad con SSL.com y servidores similares, y la directiva
acme_dns_ttlpara proveedores que filtran las respuestas DNS con un TTL bajo.DNS sin configuración: la configuración del resolver ahora está habilitada de forma predeterminada: Angie lee
/etc/resolv.confpor sí mismo y vigila sus cambios, por lo que ya no es necesario especificar a mano las direcciones de los servidores DNS; se desactiva conresolver off.Registro de errores de nuevo nivel: filtrado de mensajes mediante
filter=y etiquetaserror_log_user_tagpara enrutar eventos a los manejadores, salida del registro de errores en formato JSON, un límite de frecuencia medianterate=(1000 mensajes por segundo de forma predeterminada) y la directivatime_formatcon soporte destrftime()y%Lpara milisegundos. Además, las claves de sesión SSL pueden registrarse mediantessl_keylog_fileyproxy_ssl_keylog_file.Configuración más limpia: la directiva
gotodel módulorewriterealiza una redirección interna a un location con nombre sin cambiar el URI y funciona dentro de un bloqueif, eliminando los apaños basados entry_filesyerror_page. Las páginas de error integradas y los listados de AutoIndex incorporan un esquema de color oscuro.Estadísticas y observabilidad: el módulo Metrics ya está disponible también para el módulo
stream: contadores, histogramas y medias móviles a través de la sección de API/status/stream/metric_zones/, con soporte para Prometheus; la nueva sección de API/certificates/reúne en un solo lugar todos los certificados de la configuración y los obtenidos por los clientes ACME, lo que simplifica el control de las fechas de caducidad; y la variable$upstream_transportmuestra el transporte (TCP o UDP) elegido para cada intento de conexión con un servidor del grupo.Sincronización con nginx 1.31.2: se incluye toda su funcionalidad, en particular el nuevo módulo Tunnel para el túnel CONNECT (Angie como proxy HTTP para tráfico TCP arbitrario), el proxy hacia servidores por HTTP/2 y la nueva variable
$ssl_sigalgscon la lista de algoritmos de firma que admite el cliente.
Además, en Angie PRO:
proxy_passcon puerto para grupos de stream: el puerto puede indicarse directamente enproxy_passpara un grupo de servidores en el que no está definido. Así, un mismo grupo puede usarse para hacer proxy a distintos puertos: el estado de cada servidor se rastrea de forma unificada, y la indisponibilidad de un servidor se tiene en cuenta para todos los puertos a la vez. La directivano_portmarca explícitamente un grupo como que no usa puertos.proxy_bindahora evalúa las variables después de seleccionar el servidor, de modo que la conexión saliente puede vincularse a una dirección que dependa del servidor concreto elegido.La variable
$upstream_current_addrcontiene la dirección del servidor upstream actual y está disponible ya en el momento de su selección, lo que resulta útil junto conproxy_bind. A diferencia de$upstream_addr, siempre contiene exactamente una dirección.Conmutación atómica de un servidor entre el grupo primario y el de respaldo, con una sola solicitud al campo
backupde la API/config.El campo
feedbacken la API de estadísticas: cuando se usa el método de balanceo del mismo nombre, muestra el peso dinámico acumulado actual de cada servidor.
Más detalles sobre los cambios:
P.S. Por cierto, dentro de una semana, el 21 de julio, Angie cumple cuatro años, así que esta versión es también un pequeño regalo para la ocasión. ¡Gracias a todos los que están con nosotros!
¡Que tenga un buen día!