最近,Cloudflare 开源了他们的 Pingora 锈-基于框架来创建 HTTP 代理服务。 该框架已 开源的 根据 Apache 许可证版本 2.0。 作为代理解决方案,它无缝处理 HTTP/1、HTTP/2、gRPC 和 websocket 流量,具有适应性强的负载平衡和故障转移机制.
除了对创建代理、客户端和服务器的基础支持之外,Pingora 还通过库和 API 扩展了其功能,这些库和 API 有助于利用 HTTP/1、HTTP/2、TLS 甚至 TCP/UDS 构建服务。 迄今为止,Pingora 已通过 Cloudflare 广泛的网络处理了近千万亿个互联网请求.
为了确保安全和遵守法规,Pingora 与广泛认可的 OpenSSL 和 BoringSSL 库集成,确保 FIPS 合规性并结合先进技术 后量子密码学. 目前,Pingora 在开发管理大量 Cloudflare 流量的服务方面发挥着重要作用.
与传统的 C/C++ 服务相比,Pingora 的内存管理提供了更安全的替代方案。 Cloudflare 的数量显着减少 内存安全错误, 通过允许更多地关注功能开发而不是错误修复来提高生产力。 此外,对于那些运行性能敏感的服务,Pingora 的多线程架构可确保快速高效的性能,从而节省大量 CPU 和内存资源。 这对于系统速度和成本至关重要的任务特别有用。 此外,Pingora 提供高度可定制的 API,使其成为希望创建高级和个性化网关或负载均衡器的用户的理想选择.
平均而言,Pingora 将网站开始加载的等待时间(称为“第一个字节的时间”或 TTFB)缩短了 5 毫秒,并将大多数用户的较长等待时间缩短了 80 毫秒。 Pingora 通过在不同的任务之间共享互联网连接,更有效地使用互联网连接。 这意味着它不需要经常建立新连接,从而节省了通常用于确认这些连接的安全性和可靠性的时间(通过 TCP 和 TLS 握手)).
来源: 我们如何构建 Pingora(将 Cloudflare 连接到互联网的代理)
对于所有 Cloudflare 客户的总和,与旧系统相比,Pingora 每秒需要的新连接数量只有三分之一。 对于主要客户,使用 Pingora,Cloudflare 将连接的再次使用率从 87.1% 提高到 99.92%。 这使得新连接的需求量减少了 160 倍。 有兴趣的读者可以探索一下 通过构建简单的负载均衡器来实现 Pingora 的可编程 API.
科技社区于 红迪网 和 Y组合器 已注意到此公告。 YCombinator 上的一次对话强调了这一点, 与 nginx 或 caddy 不同,Pingora 不是现成的二进制文件. 它是一组软件包,旨在构建定制的反向代理以满足特定需求。 Reddit 上的另一条评论 表达了对 SSL 文档的期待, 对发现新证书的热重载等功能有浓厚的兴趣.
这 公告帖 还强调了该框架的重要性,因为人们越来越认识到内存安全的重要性 行业 并由 美国政府. 为了实现这一共同目标,Cloudflare 正在与 互联网安全研究组 (ISRG) 普罗西莫项目, 旨在推动Pingora融入互联网关键基础设施.