.. image:: misc/logo.gif :alt: Angie logo :target: https://en.angie.software/
Angie
Angie /ˈendʒi/ is an efficient, powerful, and scalable web server that was forked from nginx to act as a drop-in replacement, so you can use existing setups without major changes to module layout or configuration.
The project was conceived by ex-devs from the original nginx team to venture beyond the earlier vision.
Getting Started
To start using Angie, see the official documentation in
English ,
Russian ,
Chinese ,
Spanish , or
Portuguese __:
Installation_ (ru,cn,es,pt)Runtime configuration_ (ru,cn,es,pt)Troubleshooting and feedback channels_ (ru,cn,es,pt)Development and contribution_ (ru,cn,es,pt)
Features
On top of all the capabilities of
nginx 1.31.2 _,
Angie adds a number of its own advantages, including these:
Protocols & Connectivity
- `Production-ready HTTP/3
`_
support for both client and `proxied server
`_
connections, with the ability to independently use different protocol versions
(HTTP/1.x, HTTP/2, HTTP/3) on opposite sides (nginx's HTTP/3 is limited to
server-side and remains experimental, `suffering from degradations
`_ after reloads).
- A built-in `DNS over HTTPS (DoH)
`_
server module (RFC 8484) that accepts DNS queries over HTTP/HTTPS and proxies
them to DNS server groups via UDP or TCP.
- PROXY Protocol V2 with the ability to pass arbitrary `TLV values
`_.
- Extending authorization and balancing capabilities for `the MQTT protocol
`_.
- Informing balancing decisions with `the RDP protocol's session cookies
`_.
- Support for the XOAUTH2 and OAUTHBEARER `authentication methods
`_
in the mail proxy.
TLS & Certificate Management
Automatic HTTPS provisions multi-domain, wildcard, and IP TLS certificates using built-in
ACME_ with HTTP, DNS, and ALPN challenge support, including ACME profiles and External Account Binding (EAB) for commercial CAs.TLS 1.3 Early Data (0-RTT)_ support for both HTTP and stream modules (nginx only supports HTTP).Server- andclient-sidesupport for NTLS when using theTongsuo_ TLS library, enabledat build time_.
Load Balancing & Upstream
- Dynamic updating of upstream groups based on events and labels from `Docker containers
`_
(or similar tools like Podman) without server reload.
- `Load balancing based on the average response time
`_.
A probability-based selection algorithm ensures smooth, balanced load
distribution: faster servers automatically attract proportionally more
traffic, spikes are suppressed via a configurable smoothing factor, and
no server is ever starved of traffic. Manual weight configuration is not
needed — and would not make sense — since traffic is distributed
dynamically based on actual response times. Unlike nginx's approach, which
is effectively ``least_conn`` with a time-based adjustment rather than a
true response-time-aware algorithm, Angie's selection is driven by measured
performance.
- `Session binding
`_
for both HTTP and stream upstreams (nginx only supports HTTP), including a
``learn`` mode for automatic session detection and a ``drain`` mode for
graceful server decommissioning.
- Recommissioning upstream servers after a failure smoothly using the
``slow_start`` option of the `server
`_
directive in both HTTP and stream upstreams (nginx only supports
``slow_start`` for HTTP).
Observability & Monitoring
Exposing basic information about the web server, its
configuration, as well asmetricsof proxied servers, client connections, shared memory zones, TLS certificates, and many other things via a RESTfulAPI_ interface in JSON format.Exporting statistics in
Prometheus_ format withcustomizable templates_.Monitoring the server through the browser with the
Console Light_ visual monitoring tool. See the online demo: https://console.angie.software/Arbitrarily configurable real-time statistics collection for HTTP and stream traffic via
the Metric module_, supporting counters, histograms, and moving averages grouped by custom keys, exposed via the/status/http/metric_zones/and/status/stream/metric_zones/API sections with Prometheus support.Enhanced error logging_ with message filtering via thefilter=parameter anderror_log_user_tagdirective, JSON format output viaformat=, and a configurable maximum logging rate via therate=parameter.
Easier Configuration & Operations
- Several matching expressions at once in a single ``location`` directive:
blocks with shared settings can be `combined
`_.
- The ``goto`` directive in the rewrite module performs an
`internal redirect to a named location
`_
without modifying the URI, replacing common workarounds based on ``try_files``
or ``error_page``.
- `Automatic DNS resolver configuration
`_
from ``/etc/resolv.conf``; the file is re-read on changes, eliminating the
need to manually specify DNS server addresses.
- The ``time_format`` directive defines a `variable with a custom time format
`_,
supporting ``strftime()``-like specifiers and ``%L`` for milliseconds.
Content & Media
~~~~~~~~~~~~~~~
- Flushing the shared memory zone in `proxy_cache_path
`_
on disk preserves the cache index contents between restarts and updates,
which eliminates the cache load delay and brings the server online even
faster.
- Limiting the `MP4 file transfer rate
`_
proportionally to its bitrate, thus reducing the bandwidth load.
- Processing HEIC and AVIF formats and `image conversion
`_.
Infrastructure
~~~~~~~~~~~~~~
- `Smooth maintenance releases
`_
with prompt bug fixes and regular major updates with lots of new features,
including unique features, as well as the best of nginx and freenginx.
- Pre-built `binary packages
`_
for many popular third-party modules.
- `Comprehensive documentation `_
available in multiple languages, with `full-text search
`_ and built-in
`support for AI assistants
`_
via machine-readable sitemaps, per-page Markdown versions, and `Context7
`_ up-to-date indexing.
- A comprehensive test suite embedded directly in the source tree and
significantly extended beyond the original nginx tests, covering all
major subsystems with over 80% code coverage, runnable via ``make test``.