关于 Angie#

Angie /andʒi/ 是一个高效、强大且可扩展的网络服务器, 它是从 nginx 分叉而来的:

  • 由原团队的前开发者构思, 以超越早期愿景, 并作为一个 即插即用替代品, 无需对模块设置或配置进行重大更改。

  • 包含了 nginx 1.27.3 的所有功能, 以及一些 新特性

我们为一系列 系统和架构 构建二进制包, 以及 Docker 镜像。 源代码在我们的 公共仓库 中开放, 使用 类 BSD 许可证

此外,带有 附加功能 的商业版本 被称为 Angie PRO

提供现成的 Angie 软件包、 Docker 镜像和源代码构建选项。

启动和运行时控制; 配置、模块、指令和变量。

解决与 Angie 的技术问题, 可用反馈渠道。

为希望为项目做出贡献的开发者提供信息。

当前版本#

Angie 1.8.1Angie PRO 1.8.12024 年 12 月 28 日 发布。 新版本每季度推出一次; 在此期间,我们会发布紧急修复和重要更新。

另请参见 AngieAngie PRO 的完整版本历史。

功能#

相较于 nginx 的核心优势, 在免费的开源版本 Angie 中可用:

  • 支持 HTTP/3 用于客户端连接, 以及 代理服务器 连接, 具有在两侧独立使用不同协议版本的能力 (HTTP/1.x, HTTP/2, HTTP/3)。

  • 自动 HTTPS 提供 TLS 证书,使用内置的 ACME 支持。

  • 简化配置:location 指令 可以一次定义多个匹配表达式,这使得 结合 块与共享设置成为可能。

  • 通过 RESTful API 接口以 JSON 格式公开有关网络服务器的基本信息, 其 配置, 以及代理服务器、客户端连接、共享内存区和许多其他内容的 指标

  • Prometheus 格式导出统计信息, 具有 可自定义模板

  • 通过浏览器监控服务器, 使用 Console Light 可视化监控工具。 查看在线演示:https://console.angie.software/

  • 自动 更新 匹配域名的代理服务器列表, 或从 SRV DNS 记录中 检索 此类列表。

  • 会话绑定 模式,将所有请求 定向到同一个代理服务器。

  • 使用 server 指令的 slow_start 选项, 在故障后平滑地重新启用上游服务器。

  • 限制 MP4 文件传输速率, 与其比特率成比例, 从而减少带宽负载。

  • 通过 stream 下的 mqtt_preread 指令, 扩展 MQTT 协议的授权和负载均衡能力。

  • 通过 stream 下的 rdp_preread 指令, 利用 RDP 协议的会话 cookie 通知负载均衡决策。

  • 在使用 TongSuo TLS 库时,支持 服务器客户端 端 NTLS, 在 构建时 启用。

  • 为许多流行的第三方模块提供预构建的 二进制包


商业版 Angie PRO公开可用功能 的基础上增加了以下内容:

  • 通过 RESTful 动态配置 API 管理代理服务器; 可视化监控控制台 Console Light 也可用于在浏览器中管理服务器。

  • 主动通过发送定期的 探测请求 检查代理服务器的状态。

  • 基于 平均响应时间 对代理服务器进行负载均衡, 具有 可自定义平滑因子

  • 基于反馈 的负载均衡, 根据变量值选择对等体; 据说,它来自对等体本身, 报告其 CPU 负载或其他指标。

  • 请求的等待队列, 使用 queue 指令在 upstream 块中配置。

  • 额外的绑定模式 sticky learn, 使得可以在共享内存或外部存储中检测和存储客户端会话, 允许多个负载均衡器在集群中加入。

  • 有条件地 绑定客户端连接 到代理服务器连接, 这也使得代理 NTLM 成为可能。

  • 在代理模块中进行缓存分片,使其能够根据响应的属性在 locations 之间分配。

  • 错误页面和 Server 头字段中的服务器签名 可以通过 server_tokens 指令隐藏或覆盖。