关于 Angie#

Angie /ˈendʒi/ 是一个高效、强大且可扩展的网页服务器, 由 nginx 分叉而来:

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

  • 包含了 nginx 1.27.1 的所有功能和一些 新功能

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

此外,带有 额外功能 的商业版本名为 Angie PRO

一系列现成的Angie软件包, Docker镜像和源代码构建选项。

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

解决Angie的技术问题, 提供可用的反馈途径。

为想为项目做贡献的开发者提供的信息。

当前版本#

Angie 1.7.0Angie PRO 1.7.02024年9月19日 发布。 新版本每季度发布; 期间,我们发布紧急修复和重要更新。

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

功能#

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

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

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

  • 简化配置: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负载或其他指标。

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

  • 额外的绑定模式 sticky learn, 允许在共享内存中检测和存储客户端会话。

  • 条件 绑定客户端连接 到代理服务器连接,这也支持代理NTLM。

  • 在代理模块中的缓存分片,允许根据响应的属性在 位置 之间分配。

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