angie is a free, open source networking & connectivity project written in C and released under BSD-2-Clause. It has 2,576 GitHub stars, 113 forks and 42 open issues, and was last pushed 5 days ago. On this registry it ranks #36 of 45 tracked projects in Networking & Connectivity, with 5 head-to-head comparisons available.

What is angie?

Angie is a BSD-2-Clause web server written in C that acts as a drop-in replacement for nginx, designed for operators who want to keep their existing configuration while gaining HTTP/3, built-in ACME, and modern load-balancing behaviour.

What it is

Angie is an efficient, scalable web server forked from nginx so that existing setups continue to work without major changes to module layout or configuration. It was conceived by former developers of the original nginx team to venture beyond the earlier vision, and it builds on all the capabilities of nginx 1.31.2 while adding its own. The project lives in the web serving and reverse-proxying space alongside nginx and Apache, and its topic set covers HTTP, HTTPS, HTTP/3, QUIC, load balancing, reverse proxying, and application delivery controller duties.

The concrete problem it solves is that nginx users who want production HTTP/3, ACME certificate automation, response-time-aware balancing, and richer monitoring have to bolt those pieces on, work around gaps, or migrate. Angie replaces nginx directly: the same configuration carries over, while the gaps it names are closed — for example, nginx's HTTP/3 support is limited to the server side and remains experimental, suffering from degradations after reloads, and nginx supports slow_start and TLS 1.3 Early Data only for HTTP rather than for the stream module.

Key capabilities

  • Production-ready HTTP/3 support for both client and proxied server connections, with independent protocol versions (HTTP/1.x, HTTP/2, HTTP/3) usable on opposite sides of a proxy connection.
  • A built-in DNS over HTTPS (DoH) server module (RFC 8484) that accepts DNS queries over HTTP/HTTPS and forwards them to DNS server groups via UDP or TCP.
  • Automatic HTTPS provisioning of multi-domain, wildcard, and IP certificates through built-in ACME with HTTP, DNS, and ALPN challenges, including ACME profiles and External Account Binding (EAB) for commercial CAs.
  • Load balancing on average response time using a probability-based selection algorithm with a configurable smoothing factor, plus session binding with learn and drain modes for both HTTP and stream upstreams and a slow_start option on the server directive.
  • Dynamic updating of upstream groups from Docker container (or Podman) events and labels without reloading the server.
  • A RESTful API exposing configuration, server information, and metrics for proxied servers, client connections, shared memory zones, and TLS certificates in JSON format, with statistics export in Prometheus format using customizable templates and browser monitoring through the Console Light visual tool.
  • Protocol extensions including PROXY Protocol V2 with arbitrary TLV values, MQTT authorization and balancing, RDP session cookies informing balancing decisions, and XOAUTH2 and OAUTHBEARER authentication in the mail proxy.

Who uses it and how

  • Teams running existing nginx configurations who want HTTP/3, ACME, and stream-side slow_start without rewriting their config files.
  • Container-oriented deployments where upstream groups are updated from Docker or Podman events so traffic shifts happen without a server reload.
  • Operators fronting heterogeneous backends that need different protocol versions on either side of the proxy, for example HTTP/3 toward clients and HTTP/1.x toward legacy servers.
  • SRE and platform teams that scrape Prometheus metrics or open the Console Light interface for real-time statistics on connections, shared memory zones, and certificate expiry.
  • Organizations terminating mail and MQTT traffic centrally, using the mail proxy's OAuth authentication methods and MQTT-aware balancing.

Getting started

Install Angie by following the Installation page of the official documentation at https://en.angie.software/angie/docs/, which is published in English, Russian, Chinese, Spanish, and Portuguese alongside sections on runtime configuration, troubleshooting, and development.

How it compares

Angie sits in the same niche as nginx and Apache, since its topics and documentation explicitly position it as a drop-in alternative to the former rather than a different class of software. Among those tools it is distinguished by carrying forward nginx's configuration while adding HTTP/3 on both sides of a connection, a built-in ACME implementation, and response-time-driven balancing, which are the gaps it names in nginx itself.

When to use it — and when not

A self-hoster still operates the whole serving stack themselves — certificate lifecycle through the built-in ACME module, upstream health and DNS resolution, and the mail proxy if that module is enabled — so it is not a turnkey hosted platform. Operators who need the reassurance of nginx's very large install base, or who depend on nginx-specific third-party modules, should weigh whether a smaller project with 2,576 stars and 42 open issues covers their case. The README itself is an excerpt that defers installation, configuration, and troubleshooting detail to external documentation, so evaluating a specific feature means reading those linked pages rather than the repository front page.

project readme (upstream, from github) — read inline

.. 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 - and client-side support for NTLS when using the Tongsuo _ TLS library, enabled at 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 as metrics of proxied servers, client connections, shared memory zones, TLS certificates, and many other things via a RESTful API _ interface in JSON format.

  • Exporting statistics in Prometheus _ format with customizable 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 the filter= parameter and error_log_user_tag directive, JSON format output via format=, and a configurable maximum logging rate via the rate= 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``.

Frequently asked questions

Is angie free to use?

angie is open source under the BSD-2-Clause licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does angie do?

Angie - drop-in replacement for nginx

What is angie written in?

angie is primarily written in C. Its source is publicly available at https://github.com/webserver-llc/angie, and it has 2,576 GitHub stars.