Release fan Pingora 0.4, in ramt foar it meitsjen fan netwurktsjinsten

Cloudflare hat de frijlitting fan it Pingora 0.4-ramt publisearre, ûntworpen foar it ûntwikkeljen fan feilige, heechweardige netwurktsjinsten yn 'e Rust-taal. De proxy boud mei Pingora is brûkt yn it Cloudflare-ynhâldferlieningsnetwurk ynstee fan Nginx foar mear as twa jier en ferwurket mear as 40 miljoen oanfragen per sekonde. De koade is skreaun yn Rust en publisearre ûnder de Apache 2.0-lisinsje.

Wichtige funksjes fan Pingora:

  • Stipe foar HTTP/1 en HTTP/2 (HTTP/3 yn plannen), lykas de mooglikheid om tsjinsten te meitsjen mei har eigen protokollen as UDP/TCP.
  • Stipe foar multi-threaded ferwurking fan oanfragen yn asynchrone modus.
  • De mooglikheid om werombelhannelers en filters te heakjen wêrmei jo ferskate stadia fan fersykferwurking kinne beheare, lykas oanfragen en antwurden feroarje, trochferwize, blokkearje en logje.
  • Proxying gRPC en WebSocket.
  • Ferbine load balancers.
  • Mooglikheid om konfiguraasje te feroarjen sûnder opnij te begjinnen.
  • Stipe foar it bywurkjen fan applikaasjekoade sûnder ferbinings te brekken.
  • Middels foar it wikseljen fan lading yn gefal fan mislearring (failover).
  • Yntegraasje mei ferskate tafersjoch- en loggingsystemen (Syslog, Prometheus, Sentry, OpenTelemetry).
  • Stipe foar TLS-fersifering (mei OpenSSL, BoringSSL of Rustls).
  • Ready-made Rust-pakketten foar it meitsjen fan HTTP-proxies, wurkje mei netwurkprotokollen, parsearjen fan HTTP-headers, boekhâlding en beheine ferkear, load balancing, wurkje mei de Ketama-ferspraat hash-tabel, ûnderhâld fan in cache yn RAM en asynchrone ferwurking fan timeouts.

Under de feroarings yn 'e nije ferzje:

  • Inisjele stipe foar de Kryptografybibleteek Rustls mei help fan krypto-oanbieders basearre op de aws-lc-rs en ringbibleteken basearre op BoringSSL.
  • Eksperimintele stipe foar it Windows-platfoarm.
  • Dummy TLS-modus, dy't brûkt wurde kin yn situaasjes wêr't it net mooglik is om in echte TLS-ymplemintaasje te brûken.
  • Stipe tafoege foar de gRPC-web-module om gRPC-web-kliïntfersyk te oersetten yn fersyk oan tsjinner gRPC.
  • Biedt de mooglikheid om H2C (HTTP/2 oer bleate TCP, gjin fersifering) en HTTP/1-ferbiningen op deselde netwurkpoarte te behanneljen.
  • Tafoege de mooglikheid om te ferbinen jo eigen ymplemintaasjes fan de ferbining () funksje te feroarjen it gedrach by it oprjochtsjen fan in netwurk ferbining, Bygelyks, foar in set ekstra opsjes foar de socket of simulearje flaters tidens testen.
  • Joech de mooglikheid om ynformative antwurden te negearjen by proxying, lykas antwurden mei de koptekst "ferwachtsje: 100-trochgean".
  • Stipe tafoege foar it útpakken fan gzip-komprimearre antwurden.
  • Implementearre boekhâlding fan 'e backend-steat foar tafersjochdoelen.
  • De mooglikheid tafoege om te binen oan in berik fan lokale havens.

Boarne: opennet.ru

Add a comment