A Cloudflare közzétette a Pingora keretrendszer második kiadását, amelyet biztonságos, nagy teljesítményű hálózati szolgáltatások Rust nyelven történő fejlesztésére terveztek. A Pingora segítségével készült proxy körülbelül egy éve használatos a Cloudflare tartalomkezelő hálózatában az nginx helyett, és több mint 40 millió kérést kezel másodpercenként. A kód Rust nyelven íródott, és az Apache 2.0 licenc alatt került közzétételre.
A Pingora főbb lehetőségei:
- Támogatja a HTTP/1 és HTTP/2 (tervezett HTTP/3) protokollokat, valamint lehetőséget biztosít saját protokolljaikat vagy UDP/TCP-t használó szolgáltatások létrehozására.
- Lehetőség több szálon történő aszinkron kéréskezelésre.
- Callback-kezels és szűrők csatlakoztatásának támogatása, amelyek lehetővé teszik a kérés feldolgozási szakaszainak irányítását, valamint a kérések és válaszok módosítását, átirányítását, blokkolását vagy 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 vagy BoringSSL használatá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:
- HTTP/2 további fejléc szűrőinek telepítésének támogatása hozzáadva.
- TCP bejövő csomagok puffereinek méretének megváltoztatására lehetőség van.
- Hozzáadva a body_bytes_read() funkció.
- Hozzáadva a cache_not_modified_filter szűrő.
- TLS kulcsok naplózásának lehetősége hozzáadva.
- Hozzáadva a purge_response callback funkció.
Forrás: opennet.ru
