<!-- review: finished -->

<a id="modules"></a>

# Native Modules

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

<a id="core-module"></a>

## Core Module

| [Core](https://en.angie.software//angie/docs/configuration/modules/core.md#core)   | Management of service files, processes, and other Angie modules.   |
|------------------------------------------------------------------------------------|--------------------------------------------------------------------|

<a id="modules-http"></a>

## HTTP Modules

| [HTTP](https://en.angie.software//angie/docs/configuration/modules/http/index.md#http-core)                                                  | Core functionality for processing HTTP requests and responses,<br/>managing the HTTP server, connections, and static files.                             |
|----------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Access](https://en.angie.software//angie/docs/configuration/modules/http/http_access.md#http-access)                                        | Access control based on IP addresses and CIDR ranges.                                                                                                   |
| [ACME](https://en.angie.software//angie/docs/configuration/modules/http/http_acme.md#http-acme)                                              | Automatic retrieval and renewal of SSL certificates<br/>using the ACME protocol for HTTP servers.                                                       |
| [Docker](https://en.angie.software//angie/docs/configuration/modules/http/http_docker.md#http-docker)                                        | Dynamic updating of proxied server groups<br/>based on Docker container labels.                                                                         |
| [Addition](https://en.angie.software//angie/docs/configuration/modules/http/http_addition.md#http-addition)                                  | Insertion of a specified snippet before or after the response body.                                                                                     |
| [API](https://en.angie.software//angie/docs/configuration/modules/http/http_api.md#http-api)                                                 | RESTful HTTP interface for obtaining basic web server information and<br/>statistics in JSON format,<br/>as well as managing groups of proxied servers. |
| [Auth Basic](https://en.angie.software//angie/docs/configuration/modules/http/http_auth_basic.md#http-auth-basic)                            | Basic HTTP authentication for access control<br/>based on username and password.                                                                        |
| [Auth Request](https://en.angie.software//angie/docs/configuration/modules/http/http_auth_request.md#http-auth-request)                      | Authorization using a subrequest to an external HTTP service.                                                                                           |
| [AutoIndex](https://en.angie.software//angie/docs/configuration/modules/http/http_autoindex.md#http-autoindex)                               | Automatic directory listing without an index file.                                                                                                      |
| [Browser](https://en.angie.software//angie/docs/configuration/modules/http/http_browser.md#http-browser) (deprecated)                        | Browser identification based on the `User-Agent` header.                                                                                                |
| [Charset](https://en.angie.software//angie/docs/configuration/modules/http/http_charset.md#http-charset)                                     | Configuration and conversion of response encoding.                                                                                                      |
| [DAV](https://en.angie.software//angie/docs/configuration/modules/http/http_dav.md#http-dav)                                                 | File management on the server using the WebDAV protocol.                                                                                                |
| [Empty GIF](https://en.angie.software//angie/docs/configuration/modules/http/http_empty_gif.md#http-empty-gif)                               | Serving a one-pixel transparent GIF.                                                                                                                    |
| [FastCGI](https://en.angie.software//angie/docs/configuration/modules/http/http_fastcgi.md#http-fastcgi)                                     | Proxying requests to a FastCGI server.                                                                                                                  |
| [FLV](https://en.angie.software//angie/docs/configuration/modules/http/http_flv.md#http-flv)                                                 | Pseudo-streaming of Flash Video (FLV) files.                                                                                                            |
| [Geo](https://en.angie.software//angie/docs/configuration/modules/http/http_geo.md#http-geo)                                                 | Converting IP addresses into specified variable values.                                                                                                 |
| [GeoIP](https://en.angie.software//angie/docs/configuration/modules/http/http_geoip.md#http-geoip)                                           | Obtaining IP address data<br/>based on geolocation using MaxMind GeoIP databases.                                                                       |
| [gRPC](https://en.angie.software//angie/docs/configuration/modules/http/http_grpc.md#http-grpc)                                              | Proxying requests to a gRPC server.                                                                                                                     |
| [GunZIP](https://en.angie.software//angie/docs/configuration/modules/http/http_gunzip.md#http-gunzip)                                        | Decompressing GZip-compressed responses for modification and in cases<br/>where the client does not support compression.                                |
| [GZip](https://en.angie.software//angie/docs/configuration/modules/http/http_gzip.md#http-gzip)                                              | Compressing responses using the GZip method to save traffic.                                                                                            |
| [GZip Static](https://en.angie.software//angie/docs/configuration/modules/http/http_gzip_static.md#http-gzip-static)                         | Serving static files pre-compressed using the GZip method.                                                                                              |
| [Headers](https://en.angie.software//angie/docs/configuration/modules/http/http_headers.md#http-headers)                                     | Modifying response header fields.                                                                                                                       |
| [HTTP2](https://en.angie.software//angie/docs/configuration/modules/http/http_v2.md#http-v2)                                                 | Processing requests using the HTTP/2 protocol.                                                                                                          |
| [HTTP3](https://en.angie.software//angie/docs/configuration/modules/http/http_v3.md#http-v3)                                                 | Processing requests using the HTTP/3 protocol.                                                                                                          |
| [Image Filter](https://en.angie.software//angie/docs/configuration/modules/http/http_image_filter.md#http-image-filter) <sup>[1](#id7)</sup> | Image transformation.                                                                                                                                   |
| [Index](https://en.angie.software//angie/docs/configuration/modules/http/http_index.md#http-index)                                           | Configuration of index files<br/>that serve requests ending with a slash (`/`).                                                                         |
| [Limit Conn](https://en.angie.software//angie/docs/configuration/modules/http/http_limit_conn.md#http-limit-conn)                            | Limiting the number of concurrent requests (active connections)<br/>for protection against overload.                                                    |
| [Limit Req](https://en.angie.software//angie/docs/configuration/modules/http/http_limit_req.md#http-limit-req)                               | Limiting request frequency<br/>for protection against overload and password guessing.                                                                   |
| [Log](https://en.angie.software//angie/docs/configuration/modules/http/http_log.md#http-log)                                                 | Configuration of request logs for tracking resource access<br/>for monitoring and analysis purposes.                                                    |
| [Map](https://en.angie.software//angie/docs/configuration/modules/http/http_map.md#http-map)                                                 | Converting variables based on predefined key-value pairs.                                                                                               |
| [Metric](https://en.angie.software//angie/docs/configuration/modules/http/http_metric.md#http-metric)                                        | Custom numeric metrics in the real-time statistics API.                                                                                                 |
| [Memcached](https://en.angie.software//angie/docs/configuration/modules/http/http_memcached.md#http-memcached)                               | Retrieving responses from a Memcached server.                                                                                                           |
| [Mirror](https://en.angie.software//angie/docs/configuration/modules/http/http_mirror.md#http-mirror)                                        | Mirroring requests to other servers.                                                                                                                    |
| [MP4](https://en.angie.software//angie/docs/configuration/modules/http/http_mp4.md#http-mp4)                                                 | Pseudo-streaming of MP4 files.                                                                                                                          |
| [Perl](https://en.angie.software//angie/docs/configuration/modules/http/http_perl.md#http-perl) <sup>[1](#id7)</sup>                         | Handlers for extending functionality<br/>by specifying additional logic in the Perl language.                                                           |
| [Prometheus](https://en.angie.software//angie/docs/configuration/modules/http/http_prometheus.md#http-prometheus)                            | Server metrics in Prometheus-compatible format<br/>for monitoring and statistics collection.                                                            |
| [Proxy](https://en.angie.software//angie/docs/configuration/modules/http/http_proxy.md#http-proxy)                                           | Reverse proxying requests to other HTTP servers.                                                                                                        |
| [Random Index](https://en.angie.software//angie/docs/configuration/modules/http/http_random_index.md#http-random-index)                      | Random selection of an index file for requests<br/>ending with a slash (`/`).                                                                           |
| [RealIP](https://en.angie.software//angie/docs/configuration/modules/http/http_realip.md#http-realip)                                        | Determining client address and port<br/>when operating behind another proxy server.                                                                     |
| [Referer](https://en.angie.software//angie/docs/configuration/modules/http/http_referer.md#http-referer)                                     | Validation of `Referer` header values.                                                                                                                  |
| [Rewrite](https://en.angie.software//angie/docs/configuration/modules/http/http_rewrite.md#http-rewrite)                                     | Request URI modification, redirects, variable setting,<br/>and conditional configuration selection.                                                     |
| [SCGI](https://en.angie.software//angie/docs/configuration/modules/http/http_scgi.md#http-scgi)                                              | Proxying requests to an SCGI server.                                                                                                                    |
| [Secure Link](https://en.angie.software//angie/docs/configuration/modules/http/http_secure_link.md#http-secure-link)                         | Creating secure links with the ability to limit access time.                                                                                            |
| [Slice](https://en.angie.software//angie/docs/configuration/modules/http/http_slice.md#http-slice)                                           | Splitting requests into multiple subrequests for individual fragments<br/>for better caching of large responses.                                        |
| [Split Clients](https://en.angie.software//angie/docs/configuration/modules/http/http_split_clients.md#http-split-clients)                   | Creating variables for A/B testing, canary releases, sharding,<br/>and other scenarios requiring proportional group splitting.                          |
| [SSI](https://en.angie.software//angie/docs/configuration/modules/http/http_ssi.md#http-ssi)                                                 | Processing SSI (Server Side Includes) commands in responses.                                                                                            |
| [SSL](https://en.angie.software//angie/docs/configuration/modules/http/http_ssl.md#http-ssl)                                                 | SSL/TLS configuration for processing HTTPS requests.                                                                                                    |
| [Stub Status](https://en.angie.software//angie/docs/configuration/modules/http/http_stub_status.md#http-stub-status) (deprecated)            | Global connection and request counters in text format.                                                                                                  |
| [Sub](https://en.angie.software//angie/docs/configuration/modules/http/http_sub.md#http-sub)                                                 | Search and replace fragments in the response body.                                                                                                      |
| [Upstream](https://en.angie.software//angie/docs/configuration/modules/http/http_upstream.md#http-upstream)                                  | Configuration of proxied server groups for load balancing.                                                                                              |
| [Upstream Probe](https://en.angie.software//angie/docs/configuration/modules/http/http_upstream_probe.md#http-upstream-probe)                | Configuration of active health probes<br/>for proxied server groups.                                                                                    |
| [UserID](https://en.angie.software//angie/docs/configuration/modules/http/http_userid.md#http-userid)                                        | Issuing and processing cookies with unique client identifiers<br/>for session tracking and analytics.                                                   |
| [uWSGI](https://en.angie.software//angie/docs/configuration/modules/http/http_uwsgi.md#http-uwsgi)                                           | Proxying requests to a uWSGI server.                                                                                                                    |
| [XSLT](https://en.angie.software//angie/docs/configuration/modules/http/http_xslt.md#http-xslt) <sup>[1](#id7)</sup>                         | Transforming XML documents using the XSLT language.                                                                                                     |

<a id="modules-stream"></a>

## Stream Modules

| [Stream](https://en.angie.software//angie/docs/configuration/modules/stream/index.md#stream-core)                                   | Core stream server functionality<br/>for balancing TCP and UDP protocols at the L4 level.                                      |
|-------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------|
| [Access](https://en.angie.software//angie/docs/configuration/modules/stream/stream_access.md#stream-access)                         | Access control based on IP addresses and CIDR ranges.                                                                          |
| [ACME](https://en.angie.software//angie/docs/configuration/modules/stream/stream_acme.md#stream-acme)                               | Automatic retrieval and renewal of SSL certificates<br/>using the ACME protocol for stream servers.                            |
| [Geo](https://en.angie.software//angie/docs/configuration/modules/stream/stream_geo.md#stream-geo)                                  | Converting IP addresses into specified variable values.                                                                        |
| [GeoIP](https://en.angie.software//angie/docs/configuration/modules/stream/stream_geoip.md#stream-geoip)                            | Obtaining IP address data<br/>based on geolocation using MaxMind GeoIP databases.                                              |
| [Limit Conn](https://en.angie.software//angie/docs/configuration/modules/stream/stream_limit_conn.md#stream-limit-conn)             | Limiting the number of concurrent connections<br/>for protection against overload.                                             |
| [Log](https://en.angie.software//angie/docs/configuration/modules/stream/stream_log.md#stream-log)                                  | Configuration of session logs for tracking resource access<br/>for monitoring and analysis purposes.                           |
| [Map](https://en.angie.software//angie/docs/configuration/modules/stream/stream_map.md#stream-map)                                  | Converting variables based on predefined key-value pairs.                                                                      |
| [MQTT Preread](https://en.angie.software//angie/docs/configuration/modules/stream/stream_mqtt_preread.md#stream-mqtt-preread)       | Reading client identifier and username from MQTT connections<br/>before making load balancing decisions.                       |
| [Pass](https://en.angie.software//angie/docs/configuration/modules/stream/stream_pass.md#stream-pass)                               | Passing accepted connections<br/>directly to a configured listening socket.                                                    |
| [Proxy](https://en.angie.software//angie/docs/configuration/modules/stream/stream_proxy.md#stream-proxy)                            | Configuration of proxying to other servers.                                                                                    |
| [RDP Preread](https://en.angie.software//angie/docs/configuration/modules/stream/stream_rdp_preread.md#stream-rdp-preread)          | Reading cookies from RDP connections<br/>before making load balancing decisions.                                               |
| [RealIP](https://en.angie.software//angie/docs/configuration/modules/stream/stream_realip.md#stream-realip)                         | Determining client address and port<br/>when operating behind another proxy server.                                            |
| [Return](https://en.angie.software//angie/docs/configuration/modules/stream/stream_return.md#stream-return)                         | Sending a specified value to the client upon connection<br/>without further proxying.                                          |
| [Set](https://en.angie.software//angie/docs/configuration/modules/stream/stream_set.md#stream-set)                                  | Setting specified variable values.                                                                                             |
| [Split Clients](https://en.angie.software//angie/docs/configuration/modules/stream/stream_split_clients.md#stream-split-clients)    | Creating variables for A/B testing, canary releases, sharding,<br/>and other scenarios requiring proportional group splitting. |
| [SSL](https://en.angie.software//angie/docs/configuration/modules/stream/stream_ssl.md#stream-ssl)                                  | SSL/TLS and DTLS protocol termination.                                                                                         |
| [SSL Preread](https://en.angie.software//angie/docs/configuration/modules/stream/stream_ssl_preread.md#stream-ssl-preread)          | Extracting information from `ClientHello` messages without SSL/TLS termination<br/>and before making load balancing decisions. |
| [Upstream](https://en.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#stream-upstream)                   | Configuration of proxied server groups for load balancing.                                                                     |
| [Upstream Probe](https://en.angie.software//angie/docs/configuration/modules/stream/stream_upstream_probe.md#stream-upstream-probe) | Configuration of active health probes<br/>for proxied server groups.                                                           |

<a id="modules-mail"></a>

## Mail Modules

| [Mail](https://en.angie.software//angie/docs/configuration/modules/mail/index.md#mail-core)                    | Core mail proxy server functionality.                                                                           |
|----------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|
| [Auth HTTP](https://en.angie.software//angie/docs/configuration/modules/mail/mail_auth_http.md#mail-auth-http) | User authentication and server selection for subsequent<br/>proxying using HTTP requests to an external server. |
| [IMAP](https://en.angie.software//angie/docs/configuration/modules/mail/mail_imap.md#mail-imap)                | IMAP protocol support.                                                                                          |
| [POP3](https://en.angie.software//angie/docs/configuration/modules/mail/mail_pop3.md#mail-pop3)                | POP3 protocol support.                                                                                          |
| [Proxy](https://en.angie.software//angie/docs/configuration/modules/mail/mail_proxy.md#mail-proxy)             | Configuration of proxying to other servers.                                                                     |
| [RealIP](https://en.angie.software//angie/docs/configuration/modules/mail/mail_realip.md#mail-realip)          | Determining client address and port<br/>when operating behind another proxy server.                             |
| [SMTP](https://en.angie.software//angie/docs/configuration/modules/mail/mail_smtp.md#mail-smtp)                | SMTP protocol support.                                                                                          |
| [SSL](https://en.angie.software//angie/docs/configuration/modules/mail/mail_ssl.md#mail-ssl)                   | SSL/TLS and StartTLS protocol support.                                                                          |

<a id="google-perftools-module"></a>

## Google PerfTools Module

| [Google PerfTools](https://en.angie.software//angie/docs/configuration/modules/google_perftools.md#google-perftools)   | Responsible for integration with the Google Performance Tools library for<br/>application profiling and performance analysis.   |
|------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|

<a id="modules-wasm"></a>

## WASM Modules

| [WASM](https://en.angie.software//angie/docs/configuration/modules/wasm/index.md#wasm-core) <sup>[1](#id7)</sup>   | Core WASM functionality enabling WASM code execution in Angie.                                            |
|--------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|
| [WAMR](https://en.angie.software//angie/docs/configuration/modules/wasm/wasm_wamr.md#wasm-wamr)                    | Integration with<br/>[WebAssembly Micro Runtime](https://github.com/bytecodealliance/wasm-micro-runtime). |
| [Wasmtime](https://en.angie.software//angie/docs/configuration/modules/wasm/wasm_wasmtime.md#wasm-wasmtime)        | Integration with the [Wasmtime](https://wasmtime.dev/) runtime environment.                               |

### Footnotes

* <a id='id7'>**[1]**</a> In our builds, these modules are compiled dynamically and installed as [separate packages](https://en.angie.software//angie/docs/installation/index.md#install-packages); for details, see the description of each module.
