pexels-bri-schneiter-346529.jpg

Via Pexels

I. 主理人序

太™酷了!

之所以想在第一时间将这个信息分享出来,是因为我们的博客 使用 lomplnmp) 架构进行搭建(o这里指代 OpenResty,LOMP 即 Linux、OpenResty、MySQL、PHP),背靠着 CloudFlare CDN 及由其提供的防御。可谓“渊源深厚”(单方面)。本博客更多 CloudFlare 相关文章参阅

OpenResty (基于 Nginx 和 LuaJIT 等基础组件改写,性能卓越),项目始于 2007年,作者章亦春,曾供职于淘宝,CloudFlare。来自 infoQ 的文章:《创造出世界顶级开源项目:梦想用“机器编程”改变工程世界 | 专访 OpenResty 章亦春》

eaufavor Github

这一次,Pingora 项目的开源(Github),让我们又一次看到了 CloudFlare 的伟大之处,以及另外一个华人名字:Yuchen Wu(老实说,网络上并没有太多与这个名字相关的资讯);来自 CloudFlare 的文章《将 Cloudflare 连接到互联网的代理——Pingora 的构建方式》;更多来自 CloudFlare 未翻译的相关文章:https://blog.cloudflare.com/author/yuchen ;个人博客:https://eaufavor.net/ 及 Github https://github.com/eaufavor

II. Pingora 项目

Rock-crab-pingora-open-source-ma.jpg

“今天,我们很高兴有机会在此介绍 Pingora,这是我们使用 Rust 在内部构建的新 HTTP 代理,它每天处理超过 1 万亿个请求,提高了我们的性能,并为 Cloudflare 客户带来了许多新功能,同时只需要我们以前代理基础架构的三分之一的 CPU 和内存资源。” ... 关于 pingora 的介绍:来自 CloudFlare 的文章《将 Cloudflare 连接到互联网的代理——Pingora 的构建方式》;《Open sourcing Pingora: our Rust framework for building programmable network services》;

The Pingora framework is described by Cloudflare as:
"Pingora provides libraries and APIs to build services on top of HTTP/1 and HTTP/2, TLS, or just TCP/UDP. As a proxy, it supports HTTP/1 and HTTP/2 end-to-end, gRPC, and websocket proxying. (HTTP/3 support is on the roadmap.) It also comes with customizable load balancing and failover strategies. For compliance and security, it supports both the commonly used OpenSSL and BoringSSL libraries, which come with FIPS compliance and post-quantum crypto.

Besides providing these features, Pingora provides filters and callbacks to allow its users to fully customize how the service should process, transform and forward the requests. These APIs will be especially familiar to OpenResty and NGINX users, as many map intuitively onto *OpenResty's "_by_lua" callbacks**.

Operationally, Pingora provides zero downtime graceful restarts to upgrade itself without dropping a single incoming request. Syslog, Prometheus, Sentry, OpenTelemetry and other must-have observability tools are also easily integrated with Pingora as well."

Pingora 特性

Async Rust: fast and reliable
HTTP 1/2 end to end proxy
TLS over OpenSSL or BoringSSL
gRPC and websocket proxying
Graceful reload
Customizable load balancing and failover strategies
Support for a variety of observability tools

如何使用 pingora 快速搭建你的服务(如网站)

参阅官方文档:https://github.com/cloudflare/pingora/blob/main/docs/user_guide/index.md

III. 附注

背景资料及更多

Open Source

“离开了开源软件,本博客便不复存在”。一如 Linux、Nginx(OpenResty)、MySQL、PHP...

关于开源,来自 Google Bard 的回答:

开源的历史
开源的历史可以追溯到20世纪80年代。当时,软件通常是封闭源代码的,这意味着只有软件的开发人员才能查看和修改源代码。这使得软件的开发和改进变得非常困难。

1983年,理查德·斯托曼(Richard Stallman)创立了自由软件基金会(Free Software Foundation),并发布了GNU通用公共许可证(GNU General Public License,简称GPL)。GPL是一种自由软件许可证,允许任何人查看、修改和分发软件源代码。

1991年,Linus Torvalds发布了Linux内核。Linux是一个开源操作系统,很快就获得了巨大的成功。Linux的成功证明了开源软件的可行性和有效性。

20世纪90年代末,开源软件的开发和使用得到了迅猛发展。许多流行的软件,如Apache、MySQL、Firefox等都是开源软件。

开源的现状
如今,开源软件已经成为软件开发中不可或缺的一部分。根据2022年开源软件状态报告,98%的企业都在使用开源软件。

开源软件在各个领域都有着广泛的应用,包括:

操作系统:Linux、Android
服务器软件:Apache、Nginx、MySQL
开发工具:Git、Eclipse、Subversion
应用程序:LibreOffice、VLC、Firefox
开源的未来
开源软件的未来发展前景光明。随着软件开发的不断复杂化,开源软件的优势将更加凸显。

以下是一些开源未来发展的趋势:

开源软件的应用范围将进一步扩大。
开源软件的商业模式将更加成熟。
开源软件的安全性和可靠性将得到进一步提高。
开源社区
开源社区是指由开源软件的贡献者和用户组成的社区。开源社区是开源软件发展的重要动力。

开源社区为开源软件的开发和维护提供了以下支持:

代码贡献:开源社区的贡献者可以为开源软件提供代码贡献。
测试和反馈:开源社区的用户可以测试开源软件并提供反馈。
文档和教程:开源社区可以为开源软件提供文档和教程。
支持和帮助:开源社区可以为开源软件的用户提供支持和帮助。

参与开源
如果您有兴趣参与开源,可以做以下几件事:

选择一个您感兴趣的开源项目。
了解项目的代码库和文档。
为项目贡献代码。
测试项目并提供反馈。
帮助其他用户解决问题。
参与开源可以帮助您学习软件开发技能,结识其他开发人员,并为开源社区做出贡献。

以下是一些可以帮助您参与开源的资源:

GitHub: https://github.com/ :全球最大的代码托管平台。
SourceForge :另一个流行的代码托管平台。
Apache Software Foundation: https://www.apache.org/ :Apache基金会是世界上最大的开源组织之一。
Linux Foundation: https://www.linuxfoundation.org/ :Linux基金会是Linux内核和其他开源项目的维护者。
Free Software Foundation: https://www.fsf.org/ :自由软件基金会致力于推广自由软件和开源软件。

总结:开源是一种软件开发模式,它具有许多优点,包括提高软件质量、促进软件创新和降低软件成本。开源软件已经成为软件开发中不可或缺的一部分,其未来发展前景光明。如果您有兴趣参与开源,可以参考上述资源。

Rust

Rust是由Mozilla主导开发的通用、编译型编程语言。 设计准则为“安全、并发、实用”,支持函数式、并发式、过程式以及面向对象的编程风格。 Rust语言原本是Mozilla员工Graydon Hoare的个人项目,而Mozilla于2009年开始赞助这个项目,并且在2010年首次公开。 Via 维基百科

OpenResty

OpenResty是一个基于Nginx的Web平台,可以使用其LuaJIT引擎运行Lua脚本。 该软件由章亦春创建。2011年之前,它最初由淘宝网赞助,2012年至2016年主要由Cloudflare支持。自2017年起,主要得到OpenResty软件基金会和OpenResty公司的支持。 维基百科

OpenResty官网:https://openresty.org/cn/
开源项目:https://github.com/openresty

CloudFlare 的其他开源项目

CloudFlare:https://github.com/cloudflare
CloudFlare 中文博客:https://blog.cloudflare.com/zh-cn/ / https://blog.cloudflare.com/ (英文)

最后修改:2024 年 03 月 02 日 04 : 47 PM