
ΠΠ° 5 Π°ΠΏΡΠΈΠ» 2024 Π³. Cloudflare ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈ ΠΏΡΡΠ²ΠΈΡ ΠΏΡΠ±Π»ΠΈΡΠ΅Π½ ΡΠ΅Π»ΠΈΠ· Π½Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ Pingora v0.1.0 (Π²Π΅ΡΠ΅ v0.1.1). Π’ΠΎΠ²Π° Π΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½Π° ΡΠ°ΠΌΠΊΠ°, ΠΈΠ·ΠΏΠΈΡΠ°Π½Π° Π½Π° Rust, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠΌΠ°Π³Π° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° HTTP ΠΏΡΠΎΠΊΡΠΈ ΡΡΠ»ΡΠ³ΠΈ. ΠΡΠΎΠ΅ΠΊΡΡΡ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½Π° ΡΠ°ΡΡ ΠΎΡ ΡΡΠ°ΡΠΈΠΊΠ° Π² Cloudflare (Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Nginx). ΠΠ·Ρ ΠΎΠ΄Π½ΠΈΡΡ ΠΊΠΎΠ΄ Π½Π° Pingora Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ Π² GitHub ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·Π° Apache 2.0.
Pingora ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ API Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ Π½Π°Π΄ HTTP/1 ΠΈ HTTP/2, TLS ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ TCP/UDP. ΠΠ°ΡΠΎ ΠΏΡΠΎΠΊΡΠΈ-ΡΡΡΠ²ΡΡ ΡΠΎΠΉ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΊΡΠ°ΠΉ Π΄ΠΎ ΠΊΡΠ°ΠΉ ΠΏΡΠΎΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° HTTP/1 ΠΈ HTTP/2, gRPC ΠΈ WebSocket. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° HTTP/3 Π΅ Π² ΠΏΠ»Π°Π½ΠΎΠ²Π΅ΡΠ΅. Pingora ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π²ΠΊΠ»ΡΡΠ²Π° Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π·Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ ΠΈ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅. ΠΠ° Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ Π½Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ, ΡΠΎΠΉ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΊΠ°ΠΊΡΠΎ ΡΠΈΡΠΎΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ OpenSSL, ΡΠ°ΠΊΠ° ΠΈ BoringSSL, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π½Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π½Π° FIPS (ΡΠ΅Π΄Π΅ΡΠ°Π»Π½ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π‘ΠΠ©) ΠΈ ΡΠ»Π΅Π΄ΠΊΠ²Π°Π½ΡΠΎΠ²ΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅.
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΡΠ΅Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Pingora ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠΈΠ»ΡΡΠΈ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΈ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π΄Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ Π½Π°ΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ ΡΡΠ»ΡΠ³Π°ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° ΠΈ ΠΏΡΠ΅Π΄Π°Π²Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅.
Π ΡΠ°Π±ΠΎΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ Pingora ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΏΠ»Π°Π²Π½ΠΎ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π±Π΅Π· ΠΏΡΠ΅ΠΊΡΡΠ²Π°Π½ΠΈΡ Π·Π° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π±Π΅Π· Π·Π°Π³ΡΠ±Π° Π½Π° Π²Ρ ΠΎΠ΄ΡΡΠΈ Π·Π°ΡΠ²ΠΊΠΈ. Syslog, Prometheus, Sentry, OpenTelemetry ΠΈ Π΄ΡΡΠ³ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π»Π΅ΡΠ½ΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Ρ Ρ Pingora.
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° Pingora: ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Async Rust, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° HTTP 1/2 ΠΊΡΠ°ΠΉ Π΄ΠΎ ΠΊΡΠ°ΠΉ ΠΏΡΠΎΠΊΡΠΈ, TLS Π½Π°Π΄ OpenSSL ΠΈΠ»ΠΈ BoringSSL, gRPC ΠΈ ΠΏΡΠΎΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π±ΡΠΎΠΊΠ΅ΡΠΈ, ΠΏΠ»Π°Π²Π½ΠΎ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅, Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π·Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ ΠΈ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅.
Π Π²Π΅ΡΡΠΈΡ Pingora v0.1.1 ΡΠ° ΠΏΠΎΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΎ ΠΎΡΠΊΡΠΈΡΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ, ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° pingora-ketama, Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΎΠ²Π΅ TinyUFO ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ Π·Π° pingora-cache purge, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π΅ ΡΠ°Π·ΠΌΠ΅ΡΡΡ Π½Π° Π±ΡΡΠ΅ΡΠ° Π·Π° ΠΆΡΡΠ½Π°Π»ΠΈ Ρ Π³ΡΠ΅ΡΠΊΠΈ InvalidHTTPHeader, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠ° ΠΏΠΎΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΏΠ΅ΡΠ°ΡΠ½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π² ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru
