圈小蛙

Nginx替代品!Cloudflare开源Rust开发的Pingora框架

Cloudflare是网络行业一个响当当的名字。多年来,它通过提供从内容交付网络、DDoS缓解到提供免费的隐私友好型验证码系统替代品等各种服务,已经发展到了很高的水平。

早在2022年9月,Cloudflare就宣布他们将放弃Nginx,转而使用Rust编写的内部软件,名为Pingora,并计划将其开源。近日,Cloudflare终于兑现了他们的承诺,开源了Pingora框架。

Cloudflare宣布他们已根据Apache 2.0许可证开源了 Pingora。Pingora是一个Rust开发的异步多线程框架,用于构建可编程网络服务。Pingora长期以来一直在Cloudflare内部使用,能够维持大量流量,而现在Pingora正在开源,以帮助在Cloudflare之外构建基础设施。

Cloudflare声称,Pingora已经在其全球网络中处理了“近千万亿的互联网请求”,并且他们正在开源Pingora,以期提供一个更好、更安全的互联网,并将其扩展到基础设施之外。

为了进一步推动Pingora的采用,Cloudflare正在与互联网安全研究小组(ISRG)和Prossimo项目合作,以便最关键的互联网基础设施能够利用它。

Pingora框架的介绍

Cloudflare将Pingora框架描述为:

“Pingora 提供库和应用程序接口,用于在 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之前的阶段,尚不具备API稳定性,Cloudflare目前没有计划支持非Unix操作系统。

为什么要放弃Nginx

Cloudflare不得不从Nginx转向,因为它在开始增长时遇到了明显的问题。当时迫切需要一种现代的、更快的、内存安全的Nginx替代方案。

就在那时,Cloudflare开始以Pingora的形式开发自己的解决方案。当他们向公众介绍它时,他们展示了它如何比他们的旧服务更好,旧服务基于Nginx,配备了各种修复和解决方法。

在生产负载方面,与之前的Nginx实现相比,在相同流量负载的情况下,Pingora能够减少70%的CPU消耗和67%的内存消耗。他们还发现Pingora处理HTTP请求的速度比基于Nginx的服务更快。

Pingora不仅具有Rust的性能提升和内存安全功能,还配备了后量子安全的库。

Pingora Rust 代码可在GitHub上获取,用户可以在Cloudflare官方GitHub 存储库上找到Pingora的源代码来进行试验。该存储库由库和API组成,可用于在HTTP/1、HTTP/2、TLS和TCP/UDP之上构建服务。

Exit mobile version