ืชืืื ืืช ืฉืืจืืจ ืืจืืืืืช:
- ืืืฆื API ืืืฉ
ืชืืื ืืช ื ืชืื ืื , ืืืืคืฉืจ ืื ืื ืื ืืช ืืืืจืืช HAProxy ืชืื ืืื ืชื ืืขื ืืืืฆืขืืช REST Web API. ืืืื, ืืชื ืืืื ืืืืกืืฃ ืืืืกืืจ ืืืืคื ืืื ืื ืงืฆื ืืืืจื ืืฉืจืชืื, ืืืฆืืจ ACLs, ืืฉื ืืช ื ืืชืื ืืงืฉืืช, ืืฉื ืืช ืืจืืืืช ืืืคื ื-IP; - ื ืืกืคื ืืื ืืื nbthread, ืืืืคืฉืจืช ืื ืืืืืืจ ืืช ืืกืคืจ ืืฉืจืฉืืจืื ืืืฉืืฉืื ื- HAProxy ืืื ืืืืขื ืืช ืืืืฆืืขืื ืืืขืืืื ืืจืืื ืืืืืช. ืืืจืืจืช ืืืื, ืืกืคืจ ืฉืจืฉืืจื ืืขืืืื ื ืืืจ ืืืชืื ืืืืืืช ืืืขืื ืืืืื ืืช ืืกืืืื ืื ืืืืืช, ืืืกืืืืืช ืขื ื ืืจืืจืช ืืืืื ืืื ืฉืจืฉืืจ ืืื. ืืื ืืืืืืจ ืืืืืืช ืงืฉืืช, ื ืืกืคื ืืคืฉืจืืืืช ืืจืืื MAX_THREADS ื-MAX_PROCS, ืืืืืืืืช ืืช ืืืืื ืืขืืืื ืฉื ืืกืคืจ ืืฉืจืฉืืจืื ืืืชืืืืืื;
- ืืฉืืืืฉ ืืื ืืืืช ื-bind ืืงืฉืืจืช ืืืคืืื ืืืชืืืืช ืจืฉืช ืคืืฉื. ืืขืช ืืืืืจื, ืืื ืขืื ืฆืืจื ืืืืืืจ ืคืจืืืจืื ืฉื ืชืืืื - ืืืจืืจืช ืืืื, ืืืืืืจืื ืืืืืงื ืืื ืฉืจืฉืืจืื ืืืชืื ืืืกืคืจ ืืืืืืจืื ืืคืขืืืื.
- ืืืืจืช ืืืื ืื ืืขืช ืืคืขืื ืืงืื ืืืื ืจืื ืืืืืืื ืคืฉืื - ืืขืช ื ืืชื ืืฉืืื ืืช ืืืืื ืื stdout ื-stderr, ืืื ืื ืืื ืืชืืจ ืงืืืฅ ืงืืื (ืืืืืื, "log fd@1 local0");
- ืชืืืื ื-HTX (ืืืฆืื HTTP ืืงืืจื) ืืืคืขืืช ืืืจืืจืช ืืืื, ืืืืคืฉืจืช ืืืืื ืืขืช โโืฉืืืืฉ ืืชืืื ืืช ืืชืงืืืืช ืืืื HTTP/2 ืืงืฆื ืืงืฆื, ื ืืกืืื ืืช ืืืืจืื ืฉื ืฉืืื 7 ื-gRPC. HTX ืืื ื ืืืืืฃ ืืืชืจืืช ืืืงืื, ืื ืืคืืืช ืืช ืคืขืืืช ืืฉืื ืื ืืืกืจื ืืืืกืคื ืฉื ืืืชืจืช ืืืฉื ืืกืืฃ ืืจืฉืืื, ืื ืฉืืืคืฉืจ ืื ืืชืคืขื ืื ืืจืืืฆืื ืืืจืืืช ืฉื ืคืจืืืืงืื ื-HTTP, ืชืื ืฉืืืจื ืขื ืืกืื ืืืงื ืืืงืืจืืช ืฉื ืืืืชืจืืช ืืืืคืฉืจืช ืื ืืืฉืื ืืืฆืืขืื ืืืืืื ืืืชืจ ืืขืช ืชืจืืื HTTP/2 ื-HTTP/1.1 ืืืืืคื;
- ื ืืกืคื ืชืืืื ืจืฉืืืช ืืืฆื HTTP/2 ืืงืฆื ืืงืฆื (ืขืืืื ืื ืืฉืืืื ื-HTTP/2, ืืืื ืงืจืืืืช ื-backend, ืืื ืจืง ืืื ืืจืืงืฆืื ืืื ื-proxy ืืืงืื);
- ืชืืืื ืืืื ืืคืจืืงืกื ืื-ืืืืื ื ืฉื ืคืจืืืืงืื gRPC ืืืฉืื ืขื ืืืืืืช ืื ืชื ืืจืื gRPC, ืืืืฉืช ืืืืขืืช ืืืืืืช, ืฉืืงืืฃ ืชืขืืืจืช gRPC ืืืืื ืืกืื ืื ืืืืขืืช ืืืืฆืขืืช ACL. gRPC ืืืคืฉืจ ืื ืืืจืื ืืช ืขืืืืชื ืฉื ืฉืืจืืชื ืืืงืจื ืืฉืคืืช ืชืื ืืช ืฉืื ืืช ืืืงืืืืืช ืืื ืืจืืงืฆืื ืื ืขื ืื ืืืืฆืขืืช API ืืื ืืืจืกืื. ืชืงืฉืืจืช ืจืฉืช ื-gRPC ืืืืฉืืช ืขื ืืื ืคืจืืืืงืื HTTP/2 ืืืืืกืกืช ืขื ืฉืืืืฉ ืืืืืจื ืคืจืืืืงืื ืืืกืืจืช ื ืชืื ืื.
- ื ืืกืคื ืชืืืื ืืืฆื "Layer 7 Retries", ืืืืคืฉืจ ืืฉืืื ืืงืฉืืช HTTP ืืืืจืืช ืื ืฉื ืืช ืืืงืจื ืฉื ืชืงืืืช ืชืืื ื ืฉืืื ื ืงืฉืืจืืช ืืืขืืืช ืืืฆืืจืช ืืืืืจ ืืจืฉืช (ืืืืืื, ืื ืืื ืชืืืื ืื ืชืืืื ืจืืงื ื- ืืงืฉืช POST). ืืื ืืืฉืืืช ืืช ืืืฆื, ืืืื "disable-l7-retry" ื ืืกืฃ ืืืคืฉืจืืช "http-request", ืื ืืกืคื ืืคืฉืจืืช "Retry-on" ืืืืื ืื ืขืืื ืืงืืขื ืืจืืจืช ืืืืื, ืืืืื ื ืืืื. ืืกืืื ืื ืืืืื ืืืื ืื ืืฉืืืื ืืืืจืช: ืื ืฉืืืืืช ืฉื ืืชื ืืช ืื ืืกืืื ืืืืจ, ืืื, ืืฉื ืืืืืืจ, ืชืืืื ืจืืงื, ืชืืืื ืืื, ืคืกืง ืืื ืฉื ืชืืืื, 0rtt-ื ืืื, ืืื ืื ืืืืื ืืืืืจืช ืงืืื ืืฆื (404 ืืื') ;
- ืืืืืข ืื ืื ืชืืืืืื ืืืฉ, ืืืืคืฉืจ ืื ืืืืืืจ ืงืจืืื ืืงืืฆื ืืคืขืื ืืืฆืื ืืื ืขื ืืืคืืื ืขืืืจ HAProxy.
ืืืืืื, ื-Data Plan API (/usr/sbin/dataplaneapi), ืืื ืื ืื ืืขืื ืฉืื ืื ืืขืืืื ืืจื Offload, ืืืืฉืืื ืืฆืืจื ืฉื ืืืคื ืืืฆืื ื ืืื; - ื ืืกืคื ืืจืืืืช ืขืืืจ .NET Core, Go, Lua ื-Python ืืคืืชืื ืืจืืืืช SPOE (Stream Processing Offload Engine) ื-SPOP (Stream Processing Offload Protocol). ืืขืืจ, ืคืืชืื ืืจืืื ื ืชืื ืจืง ื-C;
- ื ืืกืฃ ืืืคื ืืืฆืื ื ืฉื spoa-mirror (/usr/sbin/spoa-mirror) ืืฉืืงืืฃ ืืงืฉืืช ืืฉืจืช ื ืคืจื (ืืืืืื, ืืืขืชืงืช ืืืง ืืชืขืืืจืช ืืืืฆืืจ ืืฆืืจื ืืืืงืช ืกืืืืช ื ืืกืื ืืขืืืก ืืืืชื);
- ืฉืืืืฉ ืขื ืืื
HAProxy Kubernetes Ingress Controller ืืืืืื ืืื ืืืจืฆืื ืขื ืคืืืคืืจืืช Kubernetes; - ื ืืกืคื ืชืืืื ืืืื ืืช ืืืืฆืื ืกืืืืกืืืงืืช ืืืขืจืืช ืื ืืืืจ
ืคืจืืืชืืืก ; - ืคืจืืืืงืื ืขืืืชืื, ืืืฉืืฉ ืืืืืคืช ืืืืข ืขื ืฆืืชืื ืืืจืื ืืืจืืฆืื HAProxy, ืืืืจื. ืืืื ืชืืืื ื ืืกืคืช ื-Heartbeat ืืืขืืจืช ื ืชืื ืื ืืืฆืคื ืช;
- ืืคืจืืืจ "ืืืืื" ื ืืกืฃ ืืื ืืืืช "ืืื", ืืืืคืฉืจืช ืืืจืืง ืจืง ืืืง ืืืืงืฉืืช ืืืื, ืืืฉื 1 ืืชืื 10, ืืื ืืืฆืืจ ืืืื ืื ืืืื;
- ื ืืกืฃ ืืฆื ืคืจืืคืื ืืืืืืื (ืื ืืืืช profiling.tasks, ืฉืืืืื ืืืคืขืื ืืืืืืช ืืช ืืขืจืืื ืืืืืืืืื). ืืฆืืจืช ืคืจืืคืืืื ืืืืืืืืช ืืืคืขืืช ืื ืืื ืืืืืืจ ืืืืืฆืข ืขืืื ืขื 1000 ืืืคืืืช ืืฉื ืืื. ืืฆืคืืื ืื ืชืื ื ืคืจืืคืืืื, ืืคืงืืื "ืืฆื ืคืจืืคืืืื" ื ืืกืคื ื-Runtime API ืื ืฉืืคืฉืจ ืืืคืก ืกืืืืกืืืงื ืืืืื;
- ื ืืกืคื ืชืืืื ืืืืฉื ืืฉืจืชืื ืขืืจืคืืื ืืืืฆืขืืช ืคืจืืืืงืื SOCKS4;
- ื ืืกืคื ืชืืืื ืืงืฆื ืืงืฆื ืืื ืื ืื ืืคืชืืื ืืืืจื ืฉื ืืืืืจื TCP (TFO - TCP Fast Open, RFC 7413), ืืืืคืฉืจืช ืืฆืืฆื ืืช ืืกืคืจ ืฉืืื ืืชืงื ืช ืืืืืืจ ืขื ืืื ืฉืืืื ืืจืืฉืื ืืืงืฉื ืืืช ืืืฉืื ืืฉื ื ืฉื ืชืืืื ืืืฉื ืืืชื ืืงืืืกื ืื 3 ืืฉืืืื ืืืืืืจ ืืืืคืฉืจ ืืฉืืื ื ืชืื ืื ืืฉืื ืืจืืฉืื ื ืฉื ืืฆืืจืช ืืืืืจ;
- ืคืขืืืืช ืืืฉืืช ืฉื ืืกืคื:
- "http-request replace-uri" ืืื ืืืืืืฃ ืืช ืืชืืืช ืืืชืจ ืืืืฆืขืืช ืืืืื ืจืืืืจื;
- "tcp-request content do-resolve" ื-"http-request do-resolve" ืืคืชืจืื ืฉื ืืืืจื;
- "tcp-request content set-dst" ื-"tcp-request content set-dst-port" ืืื ืืืืืืฃ ืืช ืืชืืืช ื-IP ืืืืฆืืื ืืืขื.
- ื ืืกืคื ืืืืืื ืืืจื ืืืฉืื:
- aes_gcm_dev ืืคืขื ืื ืืจืืื ืืืืฆืขืืช ืืืืืจืืชืืื AES128-GCM, AES192-GCM ื-AES256-GCM;
- protobuf ืืืืืืฅ ืฉืืืช ืืืืืขืืช ืคืจืืืืงืื Buffers;
- ungrpc ืืื ืืืืฅ ืฉืืืช ืืืืืขืืช gRPC.
ืืงืืจ: OpenNet.ru