Cloudflare 正式开源Nginx替代品:Pingora

d2ead99c847de1bbe52e14668e7fd03c.jpeg

👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 /  每月赠书

新项目:仿小红书(微服务架构)正在更新中... 。全栈前后端分离博客项目 2.0 版本完结啦, 演示链接http://116.62.199.48/ 。全程手摸手,后端 + 前端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,直到项目上线。目前已更新了287小节,累计45w+字,讲解图:2008张,还在持续爆肝中.. 后续还会上新更多项目,目标是将Java领域典型的项目都整一波,如秒杀系统, 在线商城, IM即时通讯,Spring Cloud Alibaba 等等,戳我加入学习,已有1600+小伙伴加入(早鸟价超低)

771e69bb78c5a2e38f05a43080758f23.gif

早在 2022 年,Cloudflare 就宣布已将 Nginx 替换为内部采用 Rust 编写的 Pingora,目标是构建一个更快、更高效、更通用的内部代理,用作 Cloudflare 当前和未来产品的平台。

a908b5dacac5e7e926b174271aa2b2c9.png

现在,Cloudflare 正式开源了 Pingora 框架,源代码采用 Apache License,托管在 GitHub (https://github.com/cloudflare/pingora)。

7676651d8f745448cfc105b75666141f.png

Pingora 是一个 Rust 异步多线程框架,用于构建 HTTP 代理服务,已在 Cloudflare 内部使用多年,据称每秒处理超过 4000 万个互联网请求。

截至目前,Pingora 已在 Cloudflare 的全球网络中处理了近千万亿的互联网请求。

Pingora 主要特性

-异步 Rust:快速且可靠
-HTTP 1/2 端到端代理
-基于 OpenSSL 或 BoringSSL 的 TLS
-gRPC 和 websocket 代理
-优雅的重新加载方式
-可定制的负载均衡和故障转移策略
-支持多种可观测性工具

Cloudflare 团队写道:“我们正在开源 Pingora,以帮助在我们自己的基础设施之外构建一个更好、更安全的互联网。我们希望为我们的客户、用户和其他人提供工具、想法和灵感,以使用内存安全框架构建自己的互联网基础设施。”

0df8223f70375114e7712fd9bcea4772.png

根据介绍,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 写解释型网关是退步了。

8e1cb51667442837ddc280d807e839aa.jpeg

相关链接

https://blog.cloudflare.com/pingora-open-source

https://www.zhihu.com/question/554595029/answer/2683793513

👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 /  每月赠书

新项目:仿小红书(微服务架构)正在更新中... 。全栈前后端分离博客项目 2.0 版本完结啦, 演示链接http://116.62.199.48/ 。全程手摸手,后端 + 前端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,直到项目上线。目前已更新了287小节,累计45w+字,讲解图:2008张,还在持续爆肝中.. 后续还会上新更多项目,目标是将Java领域典型的项目都整一波,如秒杀系统, 在线商城, IM即时通讯,Spring Cloud Alibaba 等等,戳我加入学习,已有1600+小伙伴加入(早鸟价超低)

35e571ad090f43b331394deee74a8c7c.gif

4998a71ab7f9ae031d09d8dd2ff71ccc.jpeg

 
 

62446dba89afc2f51eb3afb83d37aa1d.gif

 
 
 
 
1. 我的私密学习小圈子~
2. 阿里也出手了!Spring Cloud Alibaba AI 初体验
3. 去哪儿技术面:10亿数据如何最快速插入MySQL?
4. SpringBoot实现接口防抖的几种方案,杜绝重复提交
 
 
最近面试BAT,整理一份面试资料《Java面试BATJ通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。
获取方式:点“在看”,关注公众号并回复 Java 领取,更多内容陆续奉上。
PS:因公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。
点“在看”支持小哈呀,谢谢啦
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值