Built-in Modules#

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

Core Module#

Core

Responsible for managing 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 IPs and CIDR ranges.

ACME

Automatic retrieval of SSL certificates using the ACME protocol.

Addition

Inserts a predefined snippet before or after the response body.

API

RESTful HTTP interface to obtain basic information about the web server and its statistics in JSON format, as well as to manage groups of proxied servers.

Auth Basic

Basic HTTP authentication for access control based on the 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

Serves a one-pixel transparent GIF.

FastCGI

Proxying requests to a FastCGI server.

FLV

Pseudo-streaming of Flash Video (FLV) files.

Geo

Conversion of IP addresses into predefined variable values.

GeoIP

Retrieves IP address data using geolocation by MaxMind GeoIP databases.

gRPC

Proxying requests to a gRPC server.

GunZIP

Decompression of compressed GZip responses for modification or in cases where the client does not support compression.

GZip

Compression of responses using the GZip method to save traffic.

GZip Static

Serves static files pre-compressed using the GZip method.

Headers

Modification of response header fields.

HTTP2

Handles requests using the HTTP/2 protocol.

HTTP3

Handles requests using the HTTP/3 protocol.

Image Filter

Image transformation.

Index

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

JS

Handlers to extend functionality by implementing additional logic in njs, a subset of the JavaScript language.

Limit Conn

Limiting the number of concurrent requests (active connections) to protect against overload.

Limit Req

Limiting the request rate to protect against overload and password guessing.

Log

Configuration of request logs to track resource access for monitoring and analysis.

Map

Converts variables based on predefined key-value pairs.

Memcached

Retrieval of responses from a Memcached server.

Mirror

Mirroring requests to other servers.

MP4

Pseudo-streaming of MP4 files.

Perl

Handlers to extend functionality by implementing additional logic in the Perl language.

Prometheus

Server metrics in a 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 with a trailing slash (/).

RealIP

Client address and port identification when running behind another proxy server.

Referer

Referer header value validation.

Rewrite

Conditional URI modification, redirects, variable setting, and configuration selection.

SCGI

Proxying requests to a SCGI server.

Secure Link

Secure link creation with the ability to restrict access time.

Slice

Splitting requests into multiple sub-requests for better caching of large responses.

Split Clients

Creating variables for A/B testing, canary releases, sharding, and other scenarios that require a proportional group split.

SSI

Processing SSI (Server Side Includes) commands in responses.

SSL

SSL/TLS configuration to handle HTTPS requests.

Stub Status (deprecated)

Global connection and request counters in a text-based format.

Sub

Search and replace snippets in server responses.

Upstream

Configures groups of proxied servers for load balancing.

Upstream Probe

Configures health probes for groups of proxied servers.

UserID

Issuing and processing unique client identifier cookies for session tracking and analytics.

uWSGI

Proxying requests to a uWSGI server.

XSLT

XML transformation using XSLT stylesheets.

Streaming Modules#

Stream

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

Access

Access control based on IPs and CIDR ranges.

Geo

Conversion of IP addresses into predefined variable values.

GeoIP

Retrieves IP address data using geolocation by MaxMind GeoIP databases.

JS

Handlers to extend functionality by implementing additional logic in njs, a subset of the JavaScript language.

Limit Conn

Limiting the number of concurrent requests (active connections) to protect against overload.

Log

Configuration of request logs to track resource access for monitoring and analysis.

Map

Converts variables based on predefined key-value pairs.

MQTT Preread

Reads the client identifier and username from an MQTT connection before making a load balancing decision.

Pass

Configures passing accepted connections directly to a configured listening socket.

Proxy

Configures proxying to other servers.

RDP Preread

Reads cookies from an RDP connection before making a load balancing decision.

RealIP

Client address and port identification when running behind another proxy server.

Return

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

Set

Sets predefined variable values.

Split Clients

Creating variables for A/B testing, canary releases, sharding, and other scenarios that require a proportional group split.

SSL

Terminates SSL/TLS and DTLS protocols.

SSL Preread

Extracts information from the ClientHello message without terminating SSL/TLS and before making a load balancing decision.

Upstream

Configures groups of proxied servers for load balancing.

Upstream Probe

Configures health probes for groups of proxied servers.

Mail Modules#

Mail

Basic mail proxy server functionality.

Auth HTTP

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

IMAP

Support for the IMAP protocol.

POP3

Support for the POP3 protocol.

Proxy

Configures proxying to other servers.

RealIP

Client address and port identification when running behind another proxy server.

SMTP

Support for the SMTP protocol.

SSL

Support for the SSL/TLS and StartTLS protocols.

Google PerfTools Module#

Google PerfTools

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

WASM Modules#

WASM

Basic WASM functionality to enable running WASM code in Angie.

WAMR

Integration with WebAssembly Micro Runtime.

Wasmtime

Integration with the Wasmtime runtime.