Angie PRO Version History#
2025#
Angie PRO 1.8.2#
Release date: 13.02.2025. Insufficient validation while handling virtual servers with TLSv1.3 SNI
allowed SSL sessions to be reused in a different virtual server,
bypassing client SSL certificate verification (CVE-2025-23419);
the fix was ported from nginx 1.27.4. Active probes configred with the upstream_probe (PRO) directive
in the API requests to retrieve statistic values from an individual zone,
which was set via variables,
could cause a worker process to enter an infinite loop. HTTP/3 requests were not counted in zone statistics;
the bug had appeared in 1.8.0. TLS handshakes using QUIC protocol were not counted in SSL statistics. Certificate renewal via the ACME protocol could fail
for server names prefixed with a dot in the server_name directive. Dynamic modules added:Security#
Bugfixes#
stream
module could cause a worker process to crash.Packages#
2024#
Angie PRO 1.8.1#
Release date: 28.12.2024. Using the status_zone directive in the Decoding errors in HTTP/3 stream could cause a worker process crash when
closing a QUIC connection; the fix was ported from nginx 1.27.4. Sending QUIC protocol version negotiation packets could cause an infinite
packet exchange loop; the fix was ported from nginx 1.27.4. Using DNS-challenge without hooks in the ACME module could
cause a worker process crash in some configurations. Updated: angie-pro-module-auth-jwt, to version 0.9.0 23.01.2025 Updated: angie-pro-console-light, to version 1.6.0 27.01.2025 Dynamic modules added: Updated: angie-pro-console-light, to version 1.6.1 angie-pro-module-auth-spnego, to version v1.1.2 angie-pro-module-headers-more, to version v0.38 angie-pro-module-lua, to version 0.10.28 angie-pro-module-njs, to version 0.8.9 angie-pro-module-vts, to version v0.2.3 angie-pro-module-wasm, to version v0.2-beta2Bugfixes#
server
block of the
HTTP module caused excessive logging of empty requests in access_log on
TLS handshakes; the bug had appeared in 1.8.0.Packages#
Angie PRO 1.8.0#
Release date: 19.12.2024. HTTP session binding for a group of proxied servers with a request to external
storage, configurable by the sticky directive in the Support of Hooks system in the ACME module, configurable using the acme_hook
directive, which allows handling of domain name challenges using an external
application to provide integration with various services and DNS hosting
providers. The ACME module logs some additional information: why exactly the certificate
is being renewed, full domain name list, client's account ID, long periods of
inactivity (e.g. pollings), and the domain name being challenged; this
information simplifies troubleshooting and allows to specify the CAA DNS
record. The Support for variables in the status_zone directives in the stream and
HTTP modules allows to dynamically account statistics within several zones in
a single GZip HTTP compression module compatibility with the The max_headers directive that limits the number of HTTP request header
fields to better protect against DoS attacks. Thanks to Maxim Dounin
(freenginx) and Maksim Yevmenkin. The http3_max_table_capacity and proxy_http3_max_table_capacity
directives to configure the HTTP/3 dynamic header compression table limits. Cross-compilation support - the build system can now use a wrapper script to
run autotests, which enables to prepare a build without running test programs
directly on the target platform. All functionality of nginx 1.27.3. HTTP/3 clients could time out when using Proxying with HTTP/3 using variables in the proxy_pass directive and
without specifying an HTTP/3 upstreams using dynamic table could lead to worker process crash if
used with cache. Some SSL handshakes could be not counted in statistics for the HTTP/3 proxy settings specified in The proxy_ssl_certificate directive didn't work when proxying via
HTTP/3 with NTLS support enabled. When gracefully shutting down old worker processes, keep-alive connections are
now closed only after the timeout specified by the lingering_timeout
directive has expired; this behaviour allows to avoid possible client errors
when receiving replies at that moment. Thanks to Maxim Dounin (freenginx). Disabled caching of the Dynamic modules added: Updated: angie-pro-module-auth-jwt, to version 0.8.0 angie-pro-module-jwt, to version 3.4.2 angie-pro-module-njs, to version 0.8.8 angie-pro-module-opentracing, to version 0.38.0 angie-pro-module-wasm, to version 0.1-beta5Features#
learn
mode using the remote_action
and remote_result
parameters;
this allows to configure binding of client sessions to balanced servers in
cluster mode, when a group of balancers is unified by shared storage and
directs client requests within one session to the same server regardless of
which balancer they hit.DNS-01
challenges by handling DNS queries from the ACME
server, which allows to automatically request certificates of any types,
including wildcard ones.account_key
parameter of the acme_client directive, which
allows to reuse an existing key for the ACME server account instead of
auto-generating a new one.location
or server
block; in particular, it's
especially useful when a single server
block is handling multiple
virtual hosts.zlib-ng
versions
2.2.0 and above, which could previously cause [alert] gzip filter
failed to use preallocated memory
messages in the error log.Bugfixes#
0-RTT
; the bug was inherited
from nginx in version 1.7.0.upstream
block could crash the worker process.stream
module.http
or server
level might
be ignored.Changes#
stream
module variables
$ssl_server_name, $ssl_server_cert_type,
$ssl_preread_protocol, and $ssl_preread_server_name, which
allows to get actual values when using virtual servers.Packages#
Angie PRO 1.7.0#
Release date: 19.09.2024. Forced closing all the connections to a proxied server when it's removed from
the group; it can be configured via the proxy_connection_drop,
grpc_connection_drop, fastcgi_connection_drop,
scgi_connection_drop, and uwsgi_connection_drop directives,
which value can be overridden locally with the Counters of sent DNS query types in the resolver statistics API, which is
collected with the The feedback (PRO) load balancing now can be used in the The The feedback (PRO) load balancing method now accepts
floating-point numbers as the variable value. The The A The $ssl_server_cert_type variable that contains the type of selected
certificate for a received TLS-connection. Disabling creation of the PID file with the Creation of the PID file made atomic via an intermediate temporary file, which
removes a moment when the file is already in the directory but still empty,
and allows external programs to handle it more easily and reliably. Now, during reconfiguration, no attempt is made to recreate the PID file if
the name in the pid directive has changed but points to the same file
via symlinks; in particular, it allows avoiding issues on systems that migrate
from Syslog logging errors are now reported no more than
once per second; this helps avoid flooding the logs with such messages when
the syslog server is down or overloaded. Thanks to Maxim Dounin (freenginx). In the Mail proxy module, the maximum number of commands during
authentication, configured with the max_commands directive, is limited
to better protect against DoS attacks. Thanks to Maxim Dounin (freenginx). The All functionality of nginx 1.27.1. The wait timeout of a queued request configured by the queue (PRO)
directive could crash the worker process. Updated descriptions of HTTP status codes in conformance with RFC 9110. Thanks
to Maxim Dounin (freenginx) and Michiel W. Beijen. A maximum of one empty line is now allowed before an HTTP request to better
protect against DoS attacks. Thanks to Maxim Dounin (freenginx). HTTP/1.x header field names without a colon at the end are now prohibited;
such invalid header fields from a client or a proxied server will now cause an
error response. Thanks to Maxim Dounin (freenginx) and Maksim Yevmenkin. When reading a request body using HTTP/1.1 chunked transfer encoding, the
total size of ignored chunk extensions and trailer header fields is now
limited by the client_max_body_size directive to better protect against
DoS attacks. Thanks to Maxim Dounin (freenginx) and Bartek Nowotarski. The MIME type in the Updated: angie-pro-module-opentracing, to version 0.36.0 angie-pro-module-lua, to version 0.10.27 24.10.2024 Added packages for SberLinux.Features#
connection_drop
argument of an API request for server removal.status_zone
parameter of the resolver
directive.stream
module; it distributes TCP/UDP sessions based on a specified variable, which
can be obtained from proxied upstream servers or periodic requests to external
services. This allows dynamic load balancing depending on arbitrary metrics of
proxied servers, such as resource consumption, CPU/memory utilization, and
queue length.last_byte
option of the feedback (PRO) directive, which allows
processing upstream server feedback after the entire response is received,
rather than only the header.account
parameter of the least_time (PRO) directive, which
enables using a variable to specify which requests are considered for
least_time
balancing, including considering only upstream_probe (PRO)
requests.factor
parameter of the least_time (PRO) directive, which
allows to specify an adjustable smoothing factor for the least_time
balancer and overrides the value of the response_time_factor (PRO) used
for statistics collection.drain
mode that switches the proxied stream server to a new
draining
state, when only requests bound using the sticky
module are sent to the server.off
parameter of the
pid directive, which might be beneficial with immutable images and
direct control by a service manager. Thanks to Maxim Dounin (freenginx)./var/run/angie.pid
to /run/angie.pid
. Thanks to Maxim
Dounin (freenginx).--feature-cache
option of the
./configure script to cache its results for optimization when
building multiple modules or cross-compiling.Bugfixes#
PID file ... not readable (yet?) after start
and Failed to
parse PID from file...
errors might appear when starting with
systemd. Thanks to Maxim Dounin (freenginx).Changes#
mime.types
configuration file has been changed to
image/bmp
for the bmp
extension and
application/vnd.rar
for the rar
extension; set to
application/vnd.debian.binary-package
for the deb
and
udeb
extensions. Thanks to Yuriy Izorkin.Packages#
Angie PRO 1.6.2#
Release date: 16.08.2024. Processing a specially crafted MP4 file with the
ngx_http_mp4_module
could cause a worker process crash
(CVE-2024-7347);
the fix was ported from nginx 1.27.1.Security#
Angie PRO 1.6.1#
Release date: 08.08.2024. A new When using virtual servers or the pass directives in the
stream module,
connections could be accounted incorrectly in the statistics API. Worker processes could crash on configurations with 5 ACME
clients or more; the bug had appeared in 1.6.0. Handling cached responses with the Updated: angie-pro-console-light, to version 1.4.0 angie-pro-module-opentracing, to version 0.35.3 angie-pro-module-zstd, to revision Features#
passed
counter in the
API statistics
of the stream module's status_zone directive
tracks connections passed to other sockets
using pass directives.Bugfixes#
X-Accel-Redirect
header
could crash the worker process.
Thanks to Maxim Dounin (freenginx) and Jiří Setnička.Packages#
f4ba115
Angie PRO 1.6.0#
Release date: 28.06.2024. HTTP balancing by the value of a specified variable
which can be obtained from proxied upstream servers
or periodic requests to external services,
using the feedback directive
in the upstream block;
this allows, in particular, to dynamically balance the load
depending on arbitrary metrics of proxied servers:
consumption of various resources, CPU/memory utilization, queue length, etc. The sticky directive and related options
in the stream module's upstream block,
which allow to configure sticky sessions mode
where all connections in the session are routed to the same server. Extraction of Cookie values from RDP connections using the
rdp_preread directive in the stream module
into $rdp_cookie and $rdp_cookie_NAME variables,
which allows to log and stick RDP client sessions to particular servers
while load balancing. The Support for multiple acme directives
in a server block,
which allows to configure obtaining two types of certificates at once
for that virtual server. Command line options The $upstream_probe variable
that contains the name of the ongoing probe
issued by upstream_probe. All functionality of nginx 1.27.0,
including support for virtual servers in the stream module
and the Active upstream_probe probes might've not worked
on some configurations while logging error messages like
Certificate request via the ACME protocol could result in
error on some configurations with a log message like
Certificate request with large number of domain names via the
ACME protocol could result in error with a log message like
ACME clients in configurations
with multiple error_log directives
could log messages to irrelevant logs. Updated: angie-pro-module-auth-jwt, to version 0.7.0 angie-pro-module-auth-ldap, to revision angie-pro-module-jwt, to version 3.4.1 angie-pro-module-keyval, to version 0.3.0 angie-pro-module-lua:
angie-pro-module-njs, to version 0.8.5Features#
persistent
option
of the upstream_probe directive,
which allows to avoid waiting on essential
probes
after configuration reload for previously healthy servers.-m
and -M
to list built-in and loaded modules.pass
directive,
which allows to pass accepted connections
for handling to another listening sockets,
including HTTP and Mail modules.Bugfixes#
[alert] getsockname() failed (9: Bad file descriptor)
.[alert] getsockname() failed (9: Bad file descriptor)
.[error] JSON parser error
.Packages#
241200e
stream_lua_module
, to revision bea8a0c
Angie PRO 1.5.2#
Release date: 03.06.2024. When using HTTP/3, processing of a specially crafted QUIC
session could cause a worker process crash, worker process memory
disclosure on systems with MTU larger than 4096 bytes, or have other
impact (CVE-2024-32760,
CVE-2024-31079,
CVE-2024-35200,
CVE-2024-34161);
the fix has been ported from nginx 1.26.1. Updated: angie-pro-module-opentracing, to version 0.35.2Security#
Packages#
Angie PRO 1.5.1#
Release date: 16.05.2024. The While requesting a certificate via the ACME protocol, a
segmentation fault could occur in a worker process. The sticky directive in the The slow_start mechanism did not work when proxying TCP
connections in the stream module. HTTP/3 requests could result in an error if received as TLS
1.3 early data; the bug had appeared in 1.4.0. HTTP/3 connection could be prematurely closed while using
0-RTT in QUIC. When reading a request body from a fast connection, reading
for a long time was possible. Thanks to Maxim Dounin (freenginx). Now ACME clients do not discard previously stored
certificates that were expired or issued for a different domain list,
but use them while renewing. 27.05.2024 Added packages for Alpine 3.20.Bugfixes#
proxy_next_upstream
mechanism did not work correctly when editing
a group of proxied servers via the API, and when using the resolve option of the server directive in the
HTTP block if the number of
resolved IP addresses differed from the number of specified servers.learn
mode could work
incorrectly when different numbers of lookup
and create
variables were specified.Changes#
Packages#
Angie PRO 1.5.0#
Release date: 27.03.2024. Basic support for automatically obtaining and updating certificates using the
ACME protocol, configurable with the
acme_client and acme directives, as well as variables of the
form $acme_cert_= and $acme_cert_key_=. A Configuration of automatic redirection, which adds trailing
slashes to request URIs, with the auto_redirect directive. Output statistics metrics with dates in Epoch format
instead of ISO 8601 for use in Prometheus and optionally in the JSON API
with the Now the All functionality of nginx 1.25.4. If the SSL session reuse mechanism proxy_ssl_session_reuse was used and
the list of proxied servers was dynamically updated, a leak could occur in the
shared memory zone configured for the corresponding Added packages for FreeBSD 13 (arm64),
RED OS 8 (x86-64). Dynamic modules added: Updated: angie-pro-module-opentracing, to version 0.34.0 28.03.2024 Updated: angie-pro-console-light, to version 1.3.0 16.04.2024 Dynamic modules added: Updated: angie-pro-module-njs, to version 0.8.4 25.04.2024 Dynamic modules added: angie-pro-module-vts: includes
module-vts,
module-sts,
module-stream-stsFeatures#
drain
mode that switches the proxied HTTP server to a new
draining
state, when only requests bound using the sticky module are sent to the server.?date-epoch
request argument.-V
switch also shows the relevant version of nginx, which is
useful for compatibility with third-party utilities, certbot in
particular. Thanks to AdvTechnoKing.Bugfixes#
upstream
block.Packages#
Angie PRO 1.4.1#
Release date: 15.02.2024. When using HTTP/3, a segmentation error may have occurred in a worker process
while processing a specially crafted QUIC session
(CVE-2024-24989);
note that Angie PRO as of 1.4.0 is already not vulnerable to
CVE-2024-24990. Dynamic modules added: Updated: angie-pro-module-njs, to version 0.8.3 angie-pro-module-vod, to version 1.33Security#
Packages#
2023#
Angie PRO 1.4.0#
Release date: 21.12.2023. Support for establishing HTTP/3 connections to upstream
servers in the HTTP proxy module while allowing clients to
use arbitrary HTTP versions. Configuration is done with the
proxy_http_version directive and a set of The upstream_probe (PRO) directive to check the health of servers in the
stream module's Additional Waiting queue for requests that couldn't be load-balanced on the first try,
configured using the queue (PRO) directive in the HTTP module's HTTP RESTful JSON interface for
reconfiguring, adding, or deleting servers in the stream module's Load balancing by average time to establish a connection, receive the first or
last byte of a response of proxied stream upstream
servers with an adjustable smoothing factor, using the least_time (PRO)
and response_time_factor (PRO) directives in the Statistics of average time to establish a connection, receive the first and
last byte of a response of proxied stream upstream
servers in the interface provided by the api directive, with
the ability to adjust the average smoothing factor via the
response_time_factor (PRO) directive of the A mechanism for smoothly bringing the proxied server online after a failure
using the mqtt_preread directive in the stream
module, which allows extracting the username and client id from the CONNECT
packet of the MQTT protocol into the $mqtt_preread_username and $mqtt_preread_clientid variables. Limiting the response rate of MP4 files transmission to the client
proportionally to the bitrate using the mp4_limit_rate and
mp4_limit_rate_after directives, which reduces the bandwidth load. All functionality of nginx 1.25.3. If a proxied server was the only one in a group, it could be incorrectly
reported as Now the time of proxied server being in the The standard prometheus_all.conf template includes all
additional Prometheus metrics and possible Packages for Alpine 3.19. Updated: angie-pro-console-light, to version 1.2.0 angie-pro-module-auth-jwt, to version 0.4.0 angie-pro-module-headers-more, to version 0.36 angie-pro-module-ndk, to version 0.3.3 angie-pro-module-opentracing, to version 0.33.0 25.12.2023 Updated: angie-pro-console-light, to version 1.2.1 22.01.2024 Dynamic modules added: Updated: angie-pro-module-auth-jwt, to version 0.6.0 angie-pro-module-headers-more, to version 0.37 angie-pro-module-lua:
Features#
proxy_quic_
and
proxy_http3_
directives.upstream
block by
periodically creating test connections or sending datagrams.learn
mode of the sticky directive for
binding sessions to proxied servers that allows to discover sessions and save
them in the server's shared memory.upstream
block.upstream
blocks, and the state directive for persisting these changes.upstream
block.upstream
block.slow_start
option of the server directive
in the upstream
block.Bugfixes#
unavailable
in the statistics API even
after recovery.Changes#
checking
state isn't
counted as downtime
.state
values of
upstream
peers that are only exposed by the PRO version.Packages#
http_lua_module
, to version 0.10.26;
stream_lua_module
, to version 0.0.14
Angie PRO 1.3.2#
Release date: 23.11.2023. Active health probes with the possible incorrect values of metrics in Prometheus output
that used variables other than some connection attempts to upstream servers might not have been properly
accounted for in the statistics API if they failed immediately;
the bug had appeared in 1.3.0. 04.12.2023 Dynamic modules added: 07.12.2023 Updated: angie-pro-console-light, to version 1.1.1 12.12.2023 Dynamic modules added: Updated: angie-pro-module-auth-jwt, to version 0.4.0 angie-pro-module-headers-more, to version 0.36 angie-pro-module-ndk, to version 0.3.3 angie-pro-module-opentracing, to version 0.33.0Bugfixes#
essential
flag
incorrectly handled the server's transition from checking
to
unhealthy
when the initial check was failed, resulting in user
requests being routed to the faulty server.$p8s_value
for their values; in
practice the issue could occur with angie_http_upstreams_peers_state
and angie_stream_upstreams_peers_state
from the standard
prometheus_all.conf
template.Packages#
Angie PRO 1.3.1#
Release date: 18.10.2023. Added extra limitations to HTTP/2 stream handling for better protection
against the DoS attack known as "HTTP/2 Rapid Reset" (CVE-2023-44487). 26.10.2023 Dynamic modules added: 13.11.2023 Dynamic modules added: Updated: angie-pro-console-light, to version 1.1.0 angie-pro-module-headers-more, to version 0.35 angie-pro-module-njs, to version 0.8.2 angie-pro-module-vod, to version 1.32Security#
Packages#
Angie PRO 1.3.0#
Release date: 03.10.2023. Ability to specify multiple match patterns in the Load balancing by average time to receive the response header or full response
from proxied HTTP servers with an adjustable smoothing factor, using the
least_time (PRO) and response_time_factor (PRO) directives in the
Export of varied statistics metrics in Prometheus format with flexible
template configuration using the new prometheus and
prometheus_template directives. Statistics of average time to receive the response header and full response of
proxied HTTP servers in the interface provided by the api directive,
with the ability to adjust the average smoothing factor via the
response_time_factor (PRO) directive
of the Detailed information and metrics for
groups of stream upstream servers in the statistics interface provided by the
api directive. The resolve option of the The service option of the Support for binding a client connection to a backend server connection using
the bind_conn (PRO) directive in the http module's
Access to the contents of configuration files used by the current generation
of worker processes via the interface provided
by the api directive
with the api_config_files directive enabled. Display of the configuration generation number
in process titles, which allows to monitor the success of configuration
reloads and the number of previous worker process generations using the
All functionality of nginx 1.25.2. Now appname Updated: angie-pro-module-njs, to version 0.8.1Features#
location
directive,
which allows to combine several location
blocks with similar settings and therefore simplify configuration by reducing
duplication.upstream
block.upstream
block.server
directive in the
stream module's upstream
block that allows to
monitor changes to the list of IP addresses corresponding to a domain name,
and automatically update it without the need of reloading configuration.server
directive in the
stream module's upstream
block that allows to
retrieve lists of addresses from DNS SRV records, with basic priority support.upstream
blocks, particularly for proxying connections with NT LAN
Manager (NTLM) authentication.ps
utility.Changes#
angie
is used
when loading the OpenSSL configuration.Packages#
Angie PRO 1.2.0#
Release date: 15.08.2023. HTTP RESTful JSON interface for reconfiguring, adding, or
deleting servers in the HTTP module's upstream
blocks, and the state directive
for persisting these changes. The upstream_probe (PRO) directive to check the health of servers in the
HTTP module's upstream block by periodically
sending probe requests. Support for cache sharding in the HTTP proxy module, which
enables caching responses in different directories (drives) depending on an
arbitrary response parameter, configured with variables in the new
Support for NTLS in the HTTP
modules when using the TongSuo
TLS library; the support can be enabled via the In the HTTP proxy
modules, the ability to specify multiple certificates with different types
(RSA and ECDSA) and corresponding keys using the proxy_ssl_certificate
and proxy_ssl_certificate_key directives. Display of version and build name in the The gzip module's ability to compress "207 Multi-Status"
responses. Thanks to DBotThePony. All functionality of nginx 1.25.0,
including HTTP/3 support. The $upstream_sticky_status variable values are now uppercase to be in
line with the style of $upstream_cache_status values. Dynamic modules added:Features#
path-
option of the proxy_cache directive.‑‑with‑ntls
build time
option and configured with the corresponding ssl_ntls and
proxy_ssl_ntls directives.master
process title, which
allows to get this information about a running server instance using the
ps
utility.Changes#
Packages#
Angie PRO 1.1.0-p1#
Release date: 01.03.2023. The sticky directive and related options in the HTTP module's upstream block that allow to configure
sticky sessions mode, where all requests of the session are routed to the same
server. The $upstream_sticky_status variable that can be either Features#
new
,
hit
or miss
depending on the success of requesting the related
upstream server with sticky sessions enabled.
Angie PRO 1.1.0#
Release date: 07.02.2023.
Features#
The api directive that provides HTTP RESTful interface for accessing in JSON or Prometheus formats basic information about a web server instance, as well as metrics of client connections, shared memory zones, DNS queries, HTTP requests, HTTP responses cache, TCP/UDP sessions of stream module, zones of limit_conn/limit_req modules, and groups of HTTP upstream servers.
The resolve option of the server directive in the HTTP module's upstream block that allows to monitor changes to the list of IP addresses corresponding to a domain name, and automatically update it without the need of reloading configuration.
The service option of the server directive in the HTTP module's upstream block that allows to retrieve lists of addresses from DNS SRV records, with basic priority support.
The status_zone directive in HTTP module for specifying zone to collect request metrics in server and location contexts.
The status_zone directive in stream module for specifying zone to collect TCP/UDP session metrics.
The status_zone parameter of the resolver directive for specifying zone to collect metrics on DNS queries.
autoindex uses natural sorting order for directory listings.
Arbitrary configuration of the signature on default error pages and the
Server
response header field via the server_tokens directive.The $angie_version variable with version of Angie.
All functionality of nginx 1.23.3.
Packages#
07.04.2023
Added packages for ALT Linux.
12.05.2023
Added packages for FreeBSD.
Dynamic modules added:
26.05.2023
Added packages for Astra Linux Special Edition.
13.06.2023
Added packages for Debian 12 "Bookworm" and AlmaLinux.
12.07.2023
Dynamic modules added:
Updated:
angie-pro-module-njs, to version 0.8.0
31.07.2023
Dynamic modules added: