关于 Angie#

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

  • 由原始团队的前开发人员构思, 旨在超越早期愿景, 作为 直接替代品, 无需对模块设置或配置进行重大更改。

  • 包含 nginx 1.27.5 的所有功能 以及许多 新特性

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

此外,具有 附加功能 的商业版本以 Angie PRO 的名义销售。

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

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

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

为想要为项目做出贡献的 开发人员提供的信息。

当前版本#

Angie 1.10.3Angie PRO 1.10.32025 年 11 月 13 日 发布。 新版本每季度发布一次; 在此期间,我们会发布紧急修复和重要更新。

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

特性#

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

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

  • 自动 HTTPS 通过内置的 ACME 协议支持提供 TLS 证书。

  • 简化配置:location 指令 可以一次定义多个匹配表达式,从而实现 具有共享设置的块的 组合

  • 通过 RESTful API 接口以 JSON 格式 公开有关 Web 服务器、 其 配置 以及代理服务器、客户端连接、 共享内存区域等的 指标 的基本信息。

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

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

  • 基于 Docker 容器 (或类似工具如 Podman)的事件和标签 动态更新上游组,无需 服务器重载。

  • proxy_cache_path 中的共享内存区域刷新到磁盘 可在重启和更新之间保留缓存索引内容, 从而消除缓存加载延迟并使服务器更快上线。

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

  • 使用 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, 支持在共享内存或外部存储中检测和存储客户端会话, 从而允许在集群中加入多个均衡器。

  • 在 HTTP 模块的 upstream 块中使用 backup_switch 指令 允许备份服务器 在主服务器再次可访问时继续处理请求。

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

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

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