Cloudflare 正式开源Nginx替代品:Pingora
👉 这是一个或许对你有用的社群
🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料:
《项目实战(视频)》:从书中学,往事上“练” 《互联网高频面试题》:面朝简历学习,春暖花开 《架构 x 系统设计》:摧枯拉朽,掌控面试高频场景题 《精进 Java 学习指南》:系统学习,互联网主流技术栈 《必读 Java 源码专栏》:知其然,知其所以然
👉这是一个或许对你有用的开源项目
国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。
功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号、CRM 等等功能:
Boot 仓库:https://gitee.com/zhijiantianya/ruoyi-vue-pro Cloud 仓库:https://gitee.com/zhijiantianya/yudao-cloud 视频教程:https://doc.iocoder.cn 【国内首批】支持 JDK 21 + SpringBoot 3.2.2、JDK 8 + Spring Boot 2.7.18 双版本
早在 2022 年,Cloudflare 就宣布已将 Nginx 替换为内部采用 Rust 编写的 Pingora,目标是构建一个更快、更高效、更通用的内部代理,用作 Cloudflare 当前和未来产品的平台。
现在,Cloudflare 正式开源了 Pingora 框架,源代码采用 Apache License,托管在 GitHub (https://github.com/cloudflare/pingora)。
Pingora 是一个 Rust 异步多线程框架,用于构建 HTTP 代理服务,已在 Cloudflare 内部使用多年,据称每秒处理超过 4000 万个互联网请求。
截至目前,Pingora 已在 Cloudflare 的全球网络中处理了近千万亿的互联网请求。
Pingora 主要特性
-异步 Rust :快速且可靠 -HTTP 1/2 端到端代理-基于 OpenSSL 或 BoringSSL 的 TLS -gRPC 和 websocket 代理 -优雅的重新加载方式 -可定制的负载均衡和故障转移策略 -支持多种可观测性工具
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 操作系统。
Cloudflare 工程师看起来非常热爱 Rust 语言,去年他们使用 Rust 重写 Nginx C 模块,谈到了 Rust 带来的好处:
“大多数人认为编程语言的安全性主要是用于预防出现 bug,但对于一家公司来说,我们发现编程语言的安全优势还可以用来完成一些被认为非常困难、或不可能安全实现的功能需求。比如提供类似 Wireshark 的过滤语言来编写防火墙规则、允许数百万用户编写任意 JavaScript 代码并直接在我们的平台上运行它,以及即时重写 HTML 响应。
在实现上述功能过程中,Rust 为这些服务提供了严格的执行边界,让不可能变成可能。与此同时,Rust 让过去困扰行业的内存安全问题日益成为过去 。”
不过曾参与 Cloudflare 架构工作的 OpenResty 作者章亦春则指出是因为 Cloudflare 的新工程师“搞不定” Nginx——所以用 Rust 重新造了轮子,并表示他们用 Rust 写解释型网关是退步了。
相关链接
https://blog.cloudflare.com/pingora-open-source
https://www.zhihu.com/question/554595029/answer/2683793513
欢迎加入我的知识星球,全面提升技术能力。
👉 加入方式,“长按”或“扫描”下方二维码噢:
星球的内容包括:项目实战、面试招聘、源码解析、学习路线。
文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)
微信扫码关注该文公众号作者