Built-in Modules#

This guide describes Angie's built-in modules, provides configuration examples, lists their directives and parameters, as well as built-in variables.

Core Module#

Core

Management of service files, processes, and other Angie modules.

HTTP Modules#

HTTP

Core functionality for processing HTTP requests and responses, managing the HTTP server, connections, and static files.

Access

Access control based on IP addresses and CIDR ranges.

ACME

Automatic retrieval and renewal of SSL certificates using the ACME protocol for HTTP servers.

Docker

Dynamic updating of proxied server groups based on Docker container labels.

Addition

Insertion of a specified snippet before or after the response body.

API

RESTful HTTP interface for obtaining basic web server information and statistics in JSON format, as well as managing groups of proxied servers.

Auth Basic

Basic HTTP authentication for access control based on username and password.

Auth Request

Authorization using a subrequest to an external HTTP service.

AutoIndex

Automatic directory listing without an index file.

Browser (deprecated)

Browser identification based on the User-Agent header.

Charset

Configuration and conversion of response encoding.

DAV

File management on the server using the WebDAV protocol.

Empty GIF

Serving a one-pixel transparent GIF.

FastCGI

Proxying requests to a FastCGI server.

FLV

Pseudo-streaming of Flash Video (FLV) files.

Geo

Converting IP addresses into specified variable values.

GeoIP

Obtaining IP address data based on geolocation using MaxMind GeoIP databases.

gRPC

Proxying requests to a gRPC server.

GunZIP

Decompressing GZip-compressed responses for modification and in cases where the client does not support compression.

GZip

Compressing responses using the GZip method to save traffic.

GZip Static

Serving static files pre-compressed using the GZip method.

Headers

Modifying response header fields.

HTTP2

Processing requests using the HTTP/2 protocol.

HTTP3

Processing requests using the HTTP/3 protocol.

Image Filter

Image transformation.

Index

Configuration of index files that serve requests ending with a slash (/).

JS

Handlers for extending functionality by specifying additional logic in njs, a subset of the JavaScript language.

Limit Conn

Limiting the number of concurrent requests (active connections) for protection against overload.

Limit Req

Limiting request frequency for protection against overload and password guessing.

Log

Configuration of request logs for tracking resource access for monitoring and analysis purposes.

Map

Converting variables based on predefined key-value pairs.

Memcached

Retrieving responses from a Memcached server.

Mirror

Mirroring requests to other servers.

MP4

Pseudo-streaming of MP4 files.

Perl

Handlers for extending functionality by specifying additional logic in the Perl language.

Prometheus

Server metrics in Prometheus-compatible format for monitoring and statistics collection.

Proxy

Reverse proxying requests to other HTTP servers.

Random Index

Random selection of an index file for requests ending with a slash (/).

RealIP

Determining client address and port when operating behind another proxy server.

Referer

Validation of Referer header values.

Rewrite

Request URI modification, redirects, variable setting, and conditional configuration selection.

SCGI

Proxying requests to a SCGI server.

Secure Link

Creating secure links with the ability to limit access time.

Slice

Splitting requests into multiple subrequests for individual fragments for better caching of large responses.

Split Clients

Creating variables for A/B testing, canary releases, sharding, and other scenarios requiring proportional group splitting.

SSI

Processing SSI (Server Side Includes) commands in responses.

SSL

SSL/TLS configuration for processing HTTPS requests.

Stub Status (deprecated)

Global connection and request counters in text format.

Sub

Search and replace fragments in the response body.

Upstream

Configuration of proxied server groups for load balancing.

Upstream Probe

Configuration of active health checks for proxied server groups.

UserID

Issuing and processing cookies with unique client identifiers for session tracking and analytics.

uWSGI

Proxying requests to a uWSGI server.

XSLT

Transforming XML documents using the XSLT language.

Stream Modules#

Stream

Core stream server functionality for balancing TCP and UDP protocols at the L4 level.

Access

Access control based on IP addresses and CIDR ranges.

ACME

Automatic retrieval and renewal of SSL certificates using the ACME protocol for stream servers.

Geo

Converting IP addresses into specified variable values.

GeoIP

Obtaining IP address data based on geolocation using MaxMind GeoIP databases.

JS

Handlers for extending functionality by specifying additional logic in njs, a subset of the JavaScript language.

Limit Conn

Limiting the number of concurrent connections for protection against overload.

Log

Configuration of session logs for tracking resource access for monitoring and analysis purposes.

Map

Converting variables based on predefined key-value pairs.

MQTT Preread

Reading client identifier and username from MQTT connections before making load balancing decisions.

Pass

Passing accepted connections directly to a configured listening socket.

Proxy

Configuration of proxying to other servers.

RDP Preread

Reading cookies from RDP connections before making load balancing decisions.

RealIP

Determining client address and port when operating behind another proxy server.

Return

Sending a specified value to the client upon connection without further proxying.

Set

Setting specified variable values.

Split Clients

Creating variables for A/B testing, canary releases, sharding, and other scenarios requiring proportional group splitting.

SSL

SSL/TLS and DTLS protocol termination.

SSL Preread

Extracting information from ClientHello messages without SSL/TLS termination and before making load balancing decisions.

Upstream

Configuration of proxied server groups for load balancing.

Upstream Probe

Configuration of active health checks for proxied server groups.

Mail Modules#

Mail

Core mail proxy server functionality.

Auth HTTP

User authentication and server selection for subsequent proxying using HTTP requests to an external server.

IMAP

IMAP protocol support.

POP3

POP3 protocol support.

Proxy

Configuration of proxying to other servers.

RealIP

Determining client address and port when operating behind another proxy server.

SMTP

SMTP protocol support.

SSL

SSL/TLS and StartTLS protocol support.

Google PerfTools Module#

Google PerfTools

Responsible for integration with the Google Performance Tools library for application profiling and performance analysis.

WASM Modules#

WASM

Core WASM functionality enabling WASM code execution in Angie.

WAMR

Integration with WebAssembly Micro Runtime.

Wasmtime

Integration with the Wasmtime runtime environment.