About Angie#
Angie /andʒi/ is an efficient, powerful, and scalable web server that was forked from nginx:
Conceived by ex-devs from the original team to venture beyond the earlier vision and act as a drop-in replacement without major changes to module setup or configuration.
Includes all capabilities of nginx 1.27.3 and a number of new features.
We build binary packages for a range of systems and architectures, as well as Docker images. The source code is open in our public repositories under a BSD-like license.
Also, a commercial version with additional features is marketed as Angie PRO.
A choice of ready-made Angie packages, Docker images, and source code build options.
Startup and run-time control; configuration, modules, directives, and variables.
Resolving technical issues with Angie, available feedback routes.
Information for developers who want to contribute to the project.
Current Version#
Angie 1.8.1 and Angie PRO 1.8.1 were released on December 28, 2024. New versions appear quarterly; in between, we publish urgent fixes and important updates.
See also the complete version history for Angie and Angie PRO.
Features#
Core advantages over nginx, available in the free open-source version of Angie:
Supporting HTTP/3 for client connections, as well as for proxied server connections, with the ability to independently use different protocol versions (HTTP/1.x, HTTP/2, HTTP/3) on opposite sides.
Automatic HTTPS provisions TLS certificates using built-in ACME support.
Simplifying configuration: the
location
directive can define several matching expressions at once, which enables combining blocks with shared settings.Exposing basic information about the web server, its configuration, as well as metrics of proxied servers, client connections, shared memory zones, 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/
Automatically updating lists of proxied servers matching a domain name or retrieving such lists from SRV DNS records.
Session binding mode, which directs all requests within one session to the same proxied server.
Recommissioning upstream servers after a failure smoothly using the
slow_start
option of the server directive.Limiting the MP4 file transfer rate proportionally to its bitrate, thus reducing the bandwidth load.
Extending authorization and balancing capabilities for the MQTT protocol with the mqtt_preread directive under
stream
.Informing balancing decisions with RDP protocol's session cookies via the rdp_preread directive under
stream
.Server- and client-side support for NTLS when using the TongSuo TLS library, enabled at build time.
Pre-built binary packages for many popular third-party modules.
Commercial Angie PRO adds the following to the publicly available features:
Managing of proxied servers through a RESTful dynamic configuration API; the visual monitoring console Console Light can also be used to manage the server in your browser.
Proactively checking the state of proxied servers by sending periodic probing requests.
Load balancing based on average response time from proxied servers with customizable smoothing factor.
Feedback-based load balancing that selects peers based on a variable value; supposedly, it comes from the peers themselves, reporting their CPU load or other metrics.
Waiting queue for requests, configured using the queue directive in the
upstream
block.Additional binding mode sticky learn, enabling detection and storage of client sessions in shared memory or external storage, which allows joining multiple balancers in a cluster.
Conditional binding of client connections to the proxied server connection, which also enables proxying NTLM.
Cache sharding in the proxy module, which enables distributing it between locations depending on the properties of the response.
Server signature on error pages and in the
Server
header field can be hidden or overridden with the server_tokens directive.