早在2022年,Cloudflare就宣佈放棄Nginx,轉而使用Rust自行編寫的軟件Pingora。今天,Cloudflare將開源Pingora框架。Cloudflare今天宣佈在Apache2.0許可下開源Pingora。Pingora是一個Rust異步多線程框架,用於構建可編程的網絡服務。
Pingora 長期以來一直在 Cloudflare 內部使用,能夠承受大量流量,而現在 Pingora 被開源,有助於在 Cloudflare 外部構建基礎設施。
Cloudflare 對 Pingora 框架的描述是
"Pingora 提供庫和 API,用於在 HTTP/1 和 HTTP/2、TLS 或 TCP/UDP 基礎上構建服務。作為代理,它支持 HTTP/1 和 HTTP/2 端到端、gRPC 和 websocket 代理。(它還提供可定制的負載平衡和故障轉移策略。在合規性和安全性方面,它支持常用的 OpenSSL 和 BoringSSL 庫,這兩個庫都符合 FIPS 標準並支持後量子加密。除提供這些功能,Pingora 還提供過濾器和回調,允許用戶完全自定義服務應如何處理、轉換和轉發請求。對於 OpenResty 和 nginx用戶來說,這些 API 尤為熟悉,因為其中許多 API 都可以直觀地映射到 OpenResty 的"*_by_lua"回調上。
在操作上,Pingora 提供零停機時間的服務重啟,在不丟棄任何一個傳入請求的情況下進行自我升級。Syslog、Prometheus、Sentry、OpenTelemetry 和其他必備的可觀察性工具也可輕松與 Pingora 集成。
Cloudflare宣佈Pingora 將開源,其中還包括一個使用 Pingora 構建負載平衡器的示例。 處於 1.0 前階段的 Pingora 還沒有穩定的 API,Cloudflare 目前也沒有計劃支持非 Unix 操作系統。
Pingora Rust 代碼可在GitHub 上獲取。