内置模块#

本指南描述了Angie的内置模块,提供了配置示例,列出了它们的指令和参数,以及内置变量。

核心模块#

Core

负责管理服务文件、进程和其他Angie模块。

HTTP模块#

HTTP

处理HTTP请求和响应的核心功能,管理HTTP服务器、连接和静态文件。

Access

基于IP地址和CIDR范围的访问控制。

ACME

使用ACME协议为HTTP服务器自动获取和更新SSL证书。

Docker

基于Docker容器标签动态更新代理服务器组。

Addition

在响应体之前或之后插入指定的代码片段。

API

RESTful HTTP接口,用于以JSON格式获取Web服务器的基本信息和统计数据,以及管理代理服务器组。

Auth Basic

基于用户名和密码的基本HTTP身份验证进行访问控制。

Auth Request

通过向外部HTTP服务的子请求进行授权。

AutoIndex

在没有索引文件的情况下自动生成目录列表。

Browser (已弃用)

基于 User-Agent 头的浏览器识别。

Charset

响应编码的配置和转换。

DAV

使用WebDAV协议在服务器上进行文件管理。

Empty GIF

提供一个一像素透明GIF。

FastCGI

将请求代理到FastCGI服务器。

FLV

Flash视频(FLV)文件的伪流式传输。

Geo

将IP地址转换为指定的变量值。

GeoIP

使用MaxMind GeoIP数据库基于地理位置获取IP地址数据。

gRPC

将请求代理到gRPC服务器。

GunZIP

解压缩GZip压缩的响应,用于修改和客户端不支持压缩的情况。

GZip

使用GZip方法压缩响应以节省流量。

GZip Static

提供使用GZip方法预先压缩的静态文件。

Headers

修改响应头字段。

HTTP2

使用HTTP/2协议处理请求。

HTTP3

使用HTTP/3协议处理请求。

Image Filter

图像转换。

Index

配置索引文件,用于处理以斜杠(/)结尾的请求。

JS

通过在njs(JavaScript语言的子集)中指定附加逻辑来扩展功能的处理程序。

Limit Conn

限制并发请求(活动连接)的数量,以防止过载。

Limit Req

限制请求频率,以防止过载和密码猜测。

Log

配置请求日志,用于跟踪资源访问,以便进行监控和分析。

Map

基于预定义的键值对转换变量。

Memcached

从Memcached服务器获取响应。

Mirror

将请求镜像到其他服务器。

MP4

MP4文件的伪流式传输。

Perl

通过在Perl语言中指定附加逻辑来扩展功能的处理程序。

Prometheus

以Prometheus兼容格式提供服务器指标,用于监控和统计收集。

Proxy

将请求反向代理到其他HTTP服务器。

Random Index

为以斜杠(/)结尾的请求随机选择索引文件。

RealIP

在另一个代理服务器后运行时,确定客户端地址和端口。

Referer

Referer 头值的验证。

Rewrite

请求URI修改、重定向、变量设置和条件配置选择。

SCGI

将请求代理到SCGI服务器。

Secure Link

创建安全链接,能够限制访问时间。

Slice

将请求拆分为多个针对单个片段的子请求,以便更好地缓存大型响应。

Split Clients

为A/B测试、金丝雀发布、分片和其他需要比例分组的场景创建变量。

SSI

处理响应中的SSI(服务器端包含)命令。

SSL

处理HTTPS请求的SSL/TLS配置。

Stub Status (已弃用)

以文本格式提供全局连接和请求计数器。

Sub

在响应体中搜索和替换片段。

Upstream

配置用于负载均衡的代理服务器组。

Upstream Probe

为代理服务器组配置主动健康检查。

UserID

发布和处理带有唯一客户端标识符的cookie,用于会话跟踪和分析。

uWSGI

将请求代理到uWSGI服务器。

XSLT

使用XSLT语言转换XML文档。

Stream模块#

Stream

核心流服务器功能,用于在L4级别平衡TCP和UDP协议。

Access

基于IP地址和CIDR范围的访问控制。

ACME

使用ACME协议为流服务器自动获取和更新SSL证书。

Geo

将IP地址转换为指定的变量值。

GeoIP

使用MaxMind GeoIP数据库基于地理位置获取IP地址数据。

JS

通过在njs(JavaScript语言的子集)中指定附加逻辑来扩展功能的处理程序。

Limit Conn

限制并发连接的数量,以防止过载。

Log

配置会话日志,用于跟踪资源访问,以便进行监控和分析。

Map

基于预定义的键值对转换变量。

MQTT Preread

在做出负载均衡决策之前,从MQTT连接中读取客户端标识符和用户名。

Pass

将接受的连接直接传递到配置的监听套接字。

Proxy

配置代理到其他服务器。

RDP Preread

在做出负载均衡决策之前,从RDP连接中读取cookie。

RealIP

在另一个代理服务器后运行时,确定客户端地址和端口。

Return

在连接时向客户端发送指定值,无需进一步代理。

Set

设置指定的变量值。

Split Clients

为A/B测试、金丝雀发布、分片和其他需要比例分组的场景创建变量。

SSL

SSL/TLS和DTLS协议终止。

SSL Preread

在不终止SSL/TLS的情况下从 ClientHello 消息中提取信息,并在做出负载均衡决策之前。

Upstream

配置用于负载均衡的代理服务器组。

Upstream Probe

为代理服务器组配置主动健康检查。

Mail模块#

Mail

核心邮件代理服务器功能。

Auth HTTP

通过向外部服务器发送HTTP请求进行用户身份验证和后续代理的服务器选择。

IMAP

IMAP协议支持。

POP3

POP3协议支持。

Proxy

配置代理到其他服务器。

RealIP

在另一个代理服务器后运行时,确定客户端地址和端口。

SMTP

SMTP协议支持。

SSL

SSL/TLS和StartTLS协议支持。

Google PerfTools模块#

Google PerfTools

负责与Google Performance Tools库集成,用于应用程序分析和性能分析。

WASM模块#

WASM

核心WASM功能,使Angie能够执行WASM代码。

WAMR

WebAssembly Micro Runtime 集成。

Wasmtime

Wasmtime 运行时环境集成。