A Pingora 0.7 kiadása, a hálózati szolgáltatások létrehozására szolgáló keretrendszer

A Cloudflare közzétette a Pingora 0.7 keretrendszert, amely a Rust nyelven készült, a védett, nagy teljesítményű hálózati szolgáltatások fejlesztésére. A Pingora segítségével készült proxy már több mint kétéve használatban van a Cloudflare tartalom-elosztó hálózatában, helyettesítve az nginx-t, és évente 40 millió kérést kezel.

A Pingora főbb lehetőségei:

  • HTTP/1 és HTTP/2 támogatása (HTTP/3 bevezetése tervezett), valamint lehetőség saját protokollok vagy UDP/TCP alapú szolgáltatások létrehozására.
  • Több szálú kérések aszinkron feldolgozásának támogatása.
  • Callback-kezelők és szűrők csatolásának lehetősége, amelyek lehetővé teszik a kérések feldolgozásának különböző szakaszainak kezelését, valamint a kérések és válaszok módosítását, átirányítását, blokkolását és naplózását.
  • gRPC és WebSocket proxyzás.
  • Bővíthető terheléselosztók.
  • Konfiguráció változtatásának lehetősége újraindítás nélkül.
  • Alkalmazáskód frissítésének támogatása a kapcsolatok megszakítása nélkül.
  • Eszközök a hibás működés esetén történő terhelés váltásra (failover).
  • Integráció különböző monitoring és naplózási rendszerekkel (Syslog, Prometheus, Sentry, OpenTelemetry).
  • TLS titkosítás támogatása (OpenSSL, BoringSSL vagy Rustls alkalmazásával).
  • Kész Rust csomagok HTTP-proxy létrehozására, hálózati protokollok kezelésére, HTTP-fejlécek elemzésére, forgalom nyilvántartására és korlátozására, terheléselosztásra, elosztott ketamahash-táblák működtetésére, cache fenntartására a memóriában és aszinkron időtúllépések kezelésére.

Az új verzióban található változások:

  • Az SslDigest struktúrához hozzáadva egy "extension" mező, míg a TlsAccept típushoz egy handshake_complete_callback kezelőt valósítottak meg, ami lehetővé teszi, hogy alkalmazás-specifikus adatokat csatoljunk a TLS kapcsolathoz. Példaként bemutatják, hogyan használhatjuk ezt a lehetőséget az alábbi ... a szerver, amely az ügyfél tanúsítványából olvassa ki az információkat, és azokat HTTP válaszban visszaadja.
  • Hozzáadták a ConnectionFilter típust a TCP-kapcsolatok TLS paraméterek egyesítése előtti szűrésére, ami lehetővé teszi az erőforrások megtakarítását, a kapcsolatok korai szakaszban történő eldobásával.
  • A virtuális, szállítási szintű áramlások (Virtual L4 Streams) támogatása lehetővé teszi a saját hálózati protokoll-implementációk integrálását a pingora-proxy-ba.
  • Lehetővé vált a verify_cert és verify_hostname opciók használata rustls konfigurációkban.
  • Külső crate csomagok számára lehetővé vált az HttpProxy struktúrához való hozzáférés, hogy felülbírálhassák a kérések proxyzásának logikáját.
  • Engedélyezték a háttérfeldolgozók delegálását a fő session kezelő alá.
  • Lehetővé vált a HTTP1 és HTTP2 kérés testméretének nyomon követése, illetve a proxy működésével kapcsolatos metrikák figyelése.
  • Lehetővé vált saját session-ek létrehozása a beágyazott HTTP-forgalom számára.
  • Korlátozások lettek bevezetve a lru könyvtár verzióinak használatára (0.16.3 vagy újabb) a változók kölcsönzésének ellenőrzésével kapcsolatos védelmi hibák miatt, amelyek összeomlást okozhatnak.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster