早在 2022 年,Cloudflare 就曾宣布将放弃 Nginx,转而采用 Pingora —— 一个他们使用 Rust 在内部构建的新 HTTP 代理。时至今日,Cloudflare 宣布在 Apache 2.0 许可下开源了 Pingora 框架。
Pingora 是一个 Rust 异步多线程框架,可以帮助构建 HTTP 代理服务。截至目前,Pingora 已在 Cloudflare 的全球网络中处理了近千万亿的互联网请求。
“我们正在开源 Pingora,以帮助在我们自己的基础设施之外构建一个更好、更安全的互联网。我们希望为我们的客户、用户和其他人提供工具、想法和灵感,以使用内存安全框架构建自己的互联网基础设施。”
根据介绍,Pingora 提供库和 API 来在 HTTP/1 和 HTTP/2、TLS 或 TCP/UDP 之上构建服务。作为代理,它支持 HTTP/1 和 HTTP/2 端到端、gRPC 和 websocket 代理,HTTP/3 支持也在规划当中。它还具有可定制的负载平衡和故障转移策略。为了合规性和安全性,它支持常用的 OpenSSL 和 BoringSSL 库。
除了提供这些功能之外,Pingora 还提供 filters 和 callbacks,以允许用户完全自定义服务应如何处理、转换和转发请求。在运行方面,Pingora 提供零停机优雅重启,可在不丢弃任何传入请求的情况下进行自我升级。Syslog、Prometheus、Sentry、OpenTelemetry 和其他必备的可观测工具也可以轻松与 Pingora 集成。
值得注意的是,Pingora 尚处于 1.0 之前的阶段,不具备 API 稳定性,且 Cloudflare 目前没有计划支持非 Unix 操作系统。
更多详情可查看官方博客。