發布 Pingora 0.4,一個用於創建網路服務的框架

Cloudflare 發布了 Pingora 0.4 框架,旨在使用 Rust 語言開發安全、高效能的網路服務。使用 Pingora 建置的代理程式已經取代 Nginx 在 Cloudflare 內容交付網路中使用了兩年多,每秒處理超過 40 萬個請求。該程式碼是用 Rust 編寫的,並根據 Apache 2.0 許可證發布。

Pinora 的主要特點:

  • 支援 HTTP/1 和 HTTP/2(計劃中的 HTTP/3),以及使用自己的協定或 UDP/TCP 建立服務的能力。
  • 支援非同步方式的多執行緒處理請求。
  • 能夠附加回呼處理程序和篩選器,使您能夠管理請求處理的各個階段,以及修改、重新導向、封鎖和記錄請求和回應。
  • 代理 gRPC 和 WebSocket。
  • 可連接的負載平衡器。
  • 無需重新啟動即可更改配置的能力。
  • 支援在不中斷連線的情況下更新應用程式程式碼。
  • 發生故障(故障轉移)時進行負載切換的方法。
  • 與各種監控和日誌記錄系統(Syslog、Prometheus、Sentry、OpenTelemetry)整合。
  • 支援 TLS 加密(使用 OpenSSL、BoringSSL 或 Rustls)。
  • 現成的 Rust 套件用於建立 HTTP 代理、使用網路協定、解析 HTTP 標頭、計費和限制流量、負載平衡、使用 Ketama 分散式雜湊表、維護 RAM 中的快取以及非同步處理逾時。

新版本的變化包括:

  • 初步支援 Rustls 加密庫,使用基於 aws-lc-rs 的加密提供者和基於 BoringSSL 的環庫。
  • 實驗平台支援 Windows.
  • 虛擬 TLS 模式,可用於無法使用真實 TLS 實現的情況。
  • 新增對 gRPC-web 模組的支持,用於將 gRPC-web 用戶端請求轉換為對…的請求 伺服器 gRPC。
  • 提供在相同網路連接埠上處理 H2C(基於裸 TCP 的 HTTP/2,無加密)和 HTTP/1 連線的能力。
  • 新增了連接您自己的 connect() 函數實現的功能,以更改建立網路連接時的行為,例如,為套接字設定其他選項或在測試期間模擬錯誤。
  • 提供了在代理程式時忽略訊息回應的能力,例如帶有「Expect: 100-continue」標頭的回應。
  • 新增了對解壓縮 gzip 壓縮響應的支援。
  • 出於監控目的實施了後端狀態統計。
  • 新增了綁定到一系列本地端口的功能。

來源: opennet.ru

為具有 DDoS 保護、VPS VDS 服務器的站點購買可靠的主機 🔥 購買具備 DDoS 防護的可靠網站寄存服務,包括 VPS 和 VDS 伺服器 | ProHoster