Cloudflare αž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž‡αžΆαžŸαžΆαž’αžΆαžšαžŽαŸˆαž›αžΎαž€αžŠαŸ†αž”αžΌαž„αž“αŸƒ Pingora v0.1.0

Cloudflare αž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž‡αžΆαžŸαžΆαž’αžΆαžšαžŽαŸˆαž›αžΎαž€αžŠαŸ†αž”αžΌαž„αž“αŸƒ Pingora v0.1.0

αž“αŸ…αžαŸ’αž„αŸƒαž‘αžΈ 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 αž€αŸαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž•αž„αžŠαŸ‚αžšαž“αžΌαžœαž™αž»αž‘αŸ’αž’αžŸαžΆαžŸαŸ’αžαŸ’αžšαžαž»αž›αŸ’αž™αž—αžΆαž–αž”αž“αŸ’αž‘αž»αž€ αž“αž·αž„αž™αž»αž‘αŸ’αž’αžŸαžΆαžŸαŸ’αžαŸ’αžš failover αžŠαŸ‚αž›αž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αžΆαž“αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αžΆαž“αžΆαž”αžΆαž“αž“αžΌαžœαž€αžΆαžšαž’αž“αž»αž›αŸ„αž˜αžαžΆαž˜ αž“αž·αž„αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– αžœαžΆαž‚αžΆαŸ†αž‘αŸ’αžšαž‘αžΆαŸ†αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ OpenSSL αž“αž·αž„ BoringSSL αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž™αŸ‰αžΆαž„αž‘αžΌαž›αŸ†αž‘αžΌαž›αžΆαž™ αžŠαŸ‚αž›αž’αž“αž»αž›αŸ„αž˜αžαžΆαž˜ FIPS (αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αŸαžαŸŒαž˜αžΆαž“αžŸαž αž–αŸαž“αŸ’αž’) αž“αž·αž„αž€αžΆαžšαž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αž€αŸ’αžšαŸ„αž™αž”αžšαž·αž˜αžΆαžŽαŸ”

αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž‘αžΆαŸ†αž„αž“αŸαŸ‡ Pingora αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαžαž˜αŸ’αžšαž„ αž“αž·αž„αž€αžΆαžšαž αŸ…αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αŸ’αžŠαžΌαžšαžαžΆαž˜αž”αŸ†αžŽαž„αž™αŸ‰αžΆαž„αž–αŸαž‰αž›αŸαž‰αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‚αž½αžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž”αŸ†αž”αŸ’αž›αŸ‚αž„ αž“αž·αž„αž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαžŸαŸ†αžŽαžΎαŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž•αž›αž·αžαž€αž˜αŸ’αž˜ Pingora αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰αžŠαŸ„αž™αžšαž›αžΌαž“αžŠαŸ„αž™αž˜αž·αž“αž˜αžΆαž“αž–αŸαž›αžœαŸαž›αžΆαžšαž„αž…αžΆαŸ†αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αžŠαŸ„αž™αžαŸ’αž›αž½αž“αžœαžΆαžŠαŸ„αž™αž˜αž·αž“αž”αžΆαžαŸ‹αž”αž„αŸ‹αžŸαŸ†αžŽαžΎαž…αžΌαž›αžŽαžΆαž˜αž½αž™αž‘αžΎαž™αŸ” Syslog, Prometheus, Sentry, OpenTelemetry αž“αž·αž„αž§αž”αž€αžšαžŽαŸαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž™αŸ‰αžΆαž„αžšαž›αžΌαž“αž‡αžΆαž˜αž½αž™ Pingora αŸ”

αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸ PingoraαŸ– αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ Async Rust αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš HTTP 1/2 end to end proxy, TLS over OpenSSL ឬ BoringSSL, gRPC and websocket proxying, graceful reload, customizable load balancing and failover strategies, αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž§αž”αž€αžšαžŽαŸαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž•αŸ’αžŸαŸαž„αŸ—αŸ”

Pingora v0.1.1 αž‡αž½αžŸαž‡αž»αž›αž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αž”αžΆαž“αžšαž€αžƒαžΎαž‰αž–αžΈαž˜αž»αž“ αž’αŸ’αžœαžΎαž’αŸ„αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒ pingora-ketama algorithm αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαžœαžΆαž™αžαž˜αŸ’αž›αŸƒ αž“αž·αž„αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž TinyUFO αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαž˜αŸ’αž’αžΆαž pingora-cache αž€αŸ†αžŽαžαŸ‹αž‘αŸ†αž αŸ†αž•αŸ’αž‘αž»αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ InvalidHTTPHheader error logs αž“αž·αž„αž€αŸαž‡αž½αžŸαž‡αž»αž›αž€αžΆαžšαžœαžΆαž™αž’αž€αŸ’αžŸαžš αž“αž·αž„αž’αŸ’αžœαžΎαž€αžΆαžšαž€αŸ‚αžαž˜αŸ’αžšαžΌαžœαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžαž·αž™αŸ„αž”αž›αŸ‹αž•αž„αžŠαŸ‚αžšαŸ” αž“αž·αž„αž‚αž˜αŸ’αžšαŸ„αž„αž―αž€αžŸαžΆαžšαŸ”

αž”αŸ’αžšαž—αž–: linux.org.ru

αž‘αž·αž‰αž€αžΆαžšαž”αž„αŸ’αž αŸ„αŸ‡αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸαž αž‘αŸ†αž–αŸαžšαžŠαŸ‚αž›αž˜αžΆαž“αž€αžΆαžšαž€αžΆαžšαž–αžΆαžš DDoS, αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ VPS VDS πŸ”₯ αž‘αž·αž‰αžŸαŸαžœαžΆαž”αž„αŸ’αž αŸ„αŸ‡αž‚αŸαž αž‘αŸ†αž–αŸαžšαžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž€αžΆαžšαž–αžΆαžš DDoS αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ VPS VDS | ProHoster