Built-in Modules#

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

The basic functionality for managing system files, processes, and other modules of Angie is provided by the core module.

HTTP Modules#

The http module provides basic functionality of the HTTP server. In addition, the following modules are available:

access

Allows controlling access based on IP addresses, CIDR ranges, and other conditions.

acme

Implements support for the ACME protocol.

addition

Allows adding text to responses from proxy servers.

api

Implements an HTTP RESTful interface for obtaining basic information about the web server and its statistics in JSON format.

auth_basic

Implements basic HTTP authentication, allowing access control based on username and password.

auth_request

Allows delegating authorization to an external HTTP service.

autoindex

Automatically generates a list of files in directories that do not contain an index file.

browser

Allows processing requests based on the User-Agent header.

charset

Allows changing the text encoding in HTTP headers and response bodies.

dav

Implements support for the WebDAV protocol.

empty_gif

Allows creating empty GIF images.

fastcgi

Implements support for the FastCGI protocol.

flv

Provides support for streaming video in Flash Video (FLV) format over HTTP.

geoip

Allows using GeoIP databases for access control or content customization based on geolocation.

geo

Allows determining the geographical location of clients based on their IP addresses.

grpc

Implements support for the gRPC protocol.

gunzip

Automatically unpacks HTTP content encoded in gzip before delivering it to the client.

gzip

Provides compression of HTTP responses to reduce bandwidth usage and improve website loading times.

gzip_static

Allows pre-compressing static files, improving server performance.

headers

Manipulates HTTP headers in requests and responses, allowing them to be configured.

image_filter

Allows changing and processing images in JPEG, PNG, and GIF formats.

index

Specifies which file will be used as the index when accessing a directory.

js

Allows defining handlers in njs — a subset of the JavaScript language.

limit_conn

Limits the number of simultaneous client connections to prevent server overload.

limit_req

Provides request rate limiting to prevent abuse or excessive traffic to the server.

log

Logs HTTP requests and responses for monitoring and analysis.

map

Allows dynamically mapping variables based on predefined key-value pairs.

memcached

Integrates with the Memcached server for caching responses to requests.

mirror

Allows configuring request mirroring to other servers.

mp4

Implements support for streaming video in MPEG-4 format over HTTP.

perl

Adds execution of Perl scripts to handle requests.

prometheus

Publishes server metrics in a format compatible with Prometheus.

proxy

Allows proxying requests to other HTTP servers.

random_index

Configures random selection of an index file when accessing a directory.

realip

Allows changing the client’s address and optional port to those passed in a specified header field.

referer

Allows configuring access to resources depending on the value of the Referer header.

rewrite

Allows rewriting HTTP requests and responses, which is useful for URL manipulation and redirections.

scgi

Supports data exchange between Angie and SCGI servers.

secure_link

Allows creating secure links that automatically expire after a certain time or number of requests.

slice

Slices the response into chunks for streaming content according to the specified range.

split_clients

Allows dividing clients into groups based on a hash or list.

ssi

Enables including the results of other requests and displaying them together with the main document.

ssl

Implements support for the SSL/TLS protocol.

stub_status

Provides access to server status information, such as active connections, requests per second, and more, through a simple HTTP interface.

sub

Allows changing the content of the server response on the fly by replacing one string with another.

upstream

Implements configuration and management of groups of HTTP servers for load balancing when processing requests.

userid

Generates and manages unique identifiers for clients, facilitating session tracking and analytics.

uwsgi

Provides communication between Angie and uWSGI servers.

v2

Implements support for the HTTP/2 protocol.

v3

Implements support for the HTTP/3 protocol.

xslt

Adds support for transforming XML documents using XSLT style sheets.

Streaming Modules#

The stream module provides basic functionality of the stream server. In addition, the following modules are available:

access

Allows controlling access based on IP addresses, CIDR ranges, and other conditions.

geoip

Allows using GeoIP databases for access control or content customization based on geolocation.

geo

Allows determining the geographical location of clients based on their IP addresses.

js

Allows defining handlers in njs — a subset of the JavaScript language.

limit_conn

Limits the number of simultaneous client connections to prevent server overload.

log

Logs stream connections for monitoring and analysis.

map

Allows dynamically mapping variables based on predefined key-value pairs.

mqtt_preread

Allows extracting client identifier and username from MQTT packets.

proxy

Allows proxying stream connections to other servers.

realip

Allows changing the client’s address and optional port to those passed in a specified header field.

return

Allows returning a specified response to the client’s request.

set

Allows setting variable values.

split_clients

Allows dividing clients into groups based on a hash or list.

ssl_preread

Allows extracting information from the ClientHello message without SSL/TLS termination.

ssl

Implements support for the SSL/TLS protocol.

upstream

Implements configuration and management of server groups for load balancing when handling stream connections.

Mail Modules#

The mail module provides basic functionality of the mail server. In addition, the following modules are available:

auth_http

Allows authenticating users using HTTP requests to an external server.

imap

Implements support for the IMAP protocol.

pop3

Implements support for the POP3 protocol.

proxy

Allows proxying requests to other mail servers.

realip

Allows changing the client’s address and optional port to those passed in a specified header field.

smtp

Implements support for the SMTP protocol.

ssl

Implements support for the SSL/TLS protocol.

Other Modules#

google_perftools

Implements integration with the Google Performance Tools library for profiling and performance analysis of applications.