查看原文
其他

Cloudflare弃用Nginx,改用内部Rust编写的Pingora

出品 | OSC开源社区(ID:oschina2013)
长期以来,Cloudflare 一直依赖 Nginx 作为其 HTTP 代理堆栈的一部分;但现在,他们宣布已将 Nginx 替换为其内部由 Rust 编写的 Pingora 软件,“我们已经建立了一个更快、更高效、更通用的内部代理,作为我们当前和未来产品的平台”。
根据介绍,该软件每天可处理超过一万亿个请求,并可在只使用原本约三分之一的 CPU 和内存资源的情况下提供更好的性能。
随着 Cloudflare 规模的扩大,我们已经超越了 NGINX。多年来它一直很棒,但随着时间的推移,它在我们规模上的局限性意味着构建新的东西是有意义的。我们无法再获得我们需要的性能,NGINX 也没有我们非常复杂的环境所需的功能。
Cloudflare 现在主要专注于在其网络和互联网上的服务器之间代理流量的服务,Pingora 代理服务则为其 CDN、Workers fetch、Tunnel、Stream、R2 和许多其他功能和产品提供了动力。
Cloudflare 称,他们选择建立另一个新代理的原因在于,多年来在 NGINX 的使用上遇到了很多限制。其中包括会损害性能的架构限制,以及某些类型的功能难以添加等。并指出,NGINX 社区也不是很活跃,开发往往是 “闭门造车”
而他们选择 Rust 作为项目的语言,是因为它可以在不影响性能的情况下以内存安全的方式完成 C 可以做的事情。Cloudflare 还为 Rust 实现了自己的 HTTP 库,以满足他们所有不同的需求。Pingora 采用多线程架构而不是多进程。
Pingora 上的总体流量显示,TTFB 中位数减少了 5 毫秒,第 95 个百分位数减少了 80 毫秒。在所有 customers 中,与 old service 相比,Pingora 每秒的新连接数只有三分之一。对于一个 major customer 来说,它将连接重用率从 87.1% 提高到 99.92%,这使得新连接到其 origins 的次数减少了 160 倍。“为了更直观地呈现这一数字,通过切换到 Pingora,我们每天为客户和用户节省了 434 年的 handshake time。”
在生产环境中,与 old service 相比,Pingora 在相同流量负载的情况下消耗的 CPU 和内存减少了约 70% 和 67%。而除了性能优势之外,Pingora 还被认为更安全,这在很大程度上则要归功于 Rust 的使用。不过 Pingora 尚未开源,Cloudflare 表示他们正在制定计划,但目前该 HTTP 代理尚未公开。
更多详情可查看官方博客:https://blog.cloudflare.com/how-we-built-pingora-the-proxy-that-connects-cloudflare-to-the-internet/

往期推荐


微软为Vue.js推出Power BI组件

欧盟有史以来最高罚款,谷歌败诉被判罚41亿欧元!

Rust“死磕”安全,成立专门的安全团队



这里有最新开源资讯、软件更新、技术干货等内容

点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦~


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存