早在 2022 年,Cloudflare 就宣布放弃 Nginx,转而使用 Rust 自行编写的软件 Pingora。今天,Cloudflare 将开源 Pingora 框架。Cloudflare 今天宣布在 Apache 2.0 许可下开源 Pingora。Pingora 是一个 Rust 异步多线程框架,用于构建可编程的网络服务。
Pingora 长期以来一直在 Cloudflare 内部使用,能够承受大量流量,而现在 Pingora 被开源,有助于在 Cloudflare 外部构建基础设施。
Cloudflare 对 Pingora 框架的描述是
"Pingora 提供库和 API,用于在 HTTP/1 和 HTTP/2、TLS 或 TCP/UDP 基础上构建服务。作为代理,它支持 HTTP/1 和 HTTP/2 端到端、gRPC 和 websocket 代理。(它还提供可定制的负载平衡和故障转移策略。在合规性和安全性方面,它支持常用的 OpenSSL 和 BoringSSL 库,这两个库都符合 FIPS 标准并支持后量子加密。除了提供这些功能,Pingora 还提供过滤器和回调,允许用户完全自定义服务应如何处理、转换和转发请求。对于 OpenResty 和 nginx用户来说,这些 API 尤为熟悉,因为其中许多 API 都可以直观地映射到 OpenResty 的"*_by_lua"回调上。
在操作上,Pingora 提供零停机时间的服务重启,在不丢弃任何一个传入请求的情况下进行自我升级。Syslog、Prometheus、Sentry、OpenTelemetry 和其他必备的可观察性工具也可轻松与 Pingora 集成。
Cloudflare宣布Pingora 将开源,其中还包括一个使用 Pingora 构建负载平衡器的示例。 处于 1.0 前阶段的 Pingora 还没有稳定的 API,Cloudflare 目前也没有计划支持非 Unix 操作系统。
Pingora Rust 代码可在GitHub 上获取。