ααααααααααΆαααααααΆαα ααααααΆαα
- API ααααΈααααΌαααΆαααααΆα
αααααΆααα·αααααα αααα’αα»ααααΆαα±ααα’ααααααααααααααΆαααααα HAProxy ααααΆααααΆαααα REST Web API α αα½αβαααα αΌαβααΆααβα’αααβα’αΆα βααααααβαα·αβααβαααααα·ααΈβααΆαβαααααβαα·αβαααΆαααΈαβααβα ααβαααβααΆααααα αααααΎα ACLs ααααΆααβααααΌβαβααααΌαβααΆαβααααΎβαβαα»α, ααααΆααβααααΌβαβααΆαβα αβ handler αα IP; - ααΆαααααααααΆαααααΆα nbthread αααα’αα»ααααΆαα±ααα’αααααααααα ααΆααααααααα ααα½ααααααααα‘αΆααααααΆαααααΎαα αααα»α HAProxy ααΎααααΈαααααΎαααααα·αααααΆαααααα·ααααα·ααΆααα ααΎαααΈααΈααΌαα α»ααααΌαα ααΆαααααΆαααΎα α ααα½ααααααααα‘αΆαααααααααααΌαααΆαααααΎαααΎα α’αΆαααααααΎααααΌααααΈααΈααΌαααααΆααα αααα»αααα·ααΆααΆααα αα α»αααααα α αΎααα αααα»αααα·ααααΆαααα ααααΆαααΎαααΊαααααααα½αα ααΎααααΈαααααααααα·αααΉα αααααΎαααα‘αΎα MAX_THREADS αα·α MAX_PROCS ααααΌαααΆααααααα ααααααααααααααααααΆαααΎααΎα ααα½ααααααααα‘αΆα αα·αααααΎαααΆαα
- ααΆαααααΎααααΆααααΆαααααΆαα ααααααΆααααααΆααα’ααααααααααΆααα α’αΆααααααΆααααααΆαααααΌαααΆαααααΎα±ααααΆααααα αα αααααα‘αΎα ααΆαα·αα αΆαααΆα αααααααααΆαααΆααααααααααΎαααΆαααααα - ααΆαααααΆαααΎα ααΆααααααΆααααΉαααααΌαααΆαα ααα αΆααααα»αα αααααααααααα‘αΆαα’αΆαααααααΎα ααα½αααααΆααααααΆαααααααα
- ααΆαααα‘αΎααααααα ααα»αα αααααααΎαααΆααααα»ααα»αααΆα ααααα‘ααααααΌαααΆαααααΎα±ααααΆαααα - α₯α‘αΌαααααααααα ααα»α’αΆα ααααΌαααΆαααααΎαα stdout αα·α stderr ααααΌα ααΆαα ααΆαααααααα·ααΈαα·αααααΆα―αααΆααααααΆαααααΆαα (α§ααΆα ααα "log fd@1 local0");
- ααΆαααΆαααααααααΆαα HTX (Native HTTP Representation) ααααΌαααΆαααΎαααΆαααααΆαααΎα αααα’αα»ααααΆαα±ααααΆααα»αααααΆααα αααααααΎαα»αααΆαααααα·ααααααααΌα ααΆ HTTP/2, Layer 7 Retries αα·α gRPC ααΈα α»ααααα α»αα HTX αα·ααααα½αααααααΆαα ααΉαααααααααααα ααα»ααααααΆαααααααααααα·ααααα·ααΆαααααααααΎααααΈααα αα αα·αααααααααααααΆααααΈαα α α»ααααα αααααααααΈ αααα’αα»ααααΆαα±ααα’ααααααα ααααΆαααααααααααααααα·ααΈααΆα HTTP ααααααααΆα’ααααααααΎαααααααααΆ αα·αα’αα»ααααΆαα±ααα’ααα ααΎααααΈαααααα ααΆαααΌαααΆαα’αα»ααααααααααα ααααααααα HTTP/2 αα HTTP/1.1 αα·αα αααΆααααα·αα
- ααΆαααααααααΆαααΆααααααααΌαααΆααααααΆαααααα End-to-End HTTP/2 (ααααΎαααΆααααααααααΆααααΆααα αααα»α HTTP/2 αα½αααΆααααΆαα α αα ααΆαααααααααΆαααααα αα·ααα·αααααΉαααα’αααααααααααΆαααααΌααααΈ αα·αα’αα·αα·ααααα»ααααααα)α
- ααΆαααΆαααααααααααααααΆααααΆααααααααααΌααααΈαααααα·ααααα·ααΈααΆα gRPC ααααΌαααΆαα’αα»ααααααΆαα½αααΉααααααααΆααααα»αααΆααααααααααΈα gRPC ααααα ααΆααα»αααα αααα»ααααα αΆααααΈα ααΆα ααα gRPC αα αααα»ααααααα ααα» αα·αααααααΆααααααααΎ ACLs α gRPC α’αα»ααααΆαα±ααα’ααααααα αααΆαααΆααααα microservices ααΆααΆααΆααααααααααα·ααΈαααααααααααΆαα’ααααααααααααΆαα αα·ααα αααααααααΎ API αααα ααΆαααααΆαααααααααααΆααα αααα»α gRPC ααααΌαααΆαα’αα»αααααα ααΎααααΌααα HTTP/2 protocol α αΎαααα’ααααΎααΆαααααΎααααΆαα Protocol Buffers αααααΆααααΆαααααααα·ααααααα
- ααΆαααααααααΆαααΆαααααααααΆαααααα "αααααΆαα 7 ααααΆααΆαα‘αΎααα·α" αααα’αα»ααααΆαα±ααα’αααααααΎααααΎ HTTP ααααα αΎαααααααααααα»αααααΈααααααααα·ααΈαααΆαααααααα·αααΆααααααΉααααα αΆαααα»αααΆααααααΎαααΆααααααΆαααααααΆα (α§ααΆα ααα ααααα·αααΎαα·αααΆαααΆαααααΎααα α¬ααΆαααααΎααααααα αααα ααααΎ POST) α ααΎααααΈαα·αααααααα ααα "disable-l7-retry" ααααΌαααΆααααααααα αααααΎα "http-request" α αΎααααααΎα "ααααΆααΆαααααααα" ααααΌαααΆααααααααααααΆααααΆααααααααΌααα αααα»ααααααααααΆαααΎα ααααΆαα αα·ααααααααΆααααααα αααααΆααΆααααααααΆααααααΆααααΆααααααΌαα‘αΎααα·αα all-retryable-errors, none, conn-failure, empty-response, junk-response, response-timeout, 0rtt-rejected ααααΌα ααΆααΆαα ααα αααααΌαααααΆαααΆα (404 ααα) ;
- αααααα·ααΈαααααααααααααΎαααΆαααααΈααααΌαααΆαα’αα»αααα αααα’αα»ααααΆαα±ααα’αααααααααα
ααΆααααααααααΆαα α
α―αααΆααααα’αΆα
ααααα·ααααα·ααΆαααΆααααα
ααΆαα½αααΉαα§ααααααααααααΆααααααΆαα HAProxy α
α§ααΆα ααα Data Plan API (/usr/sbin/dataplaneapi) ααααΌα ααΆαααΆαααΈαααααΎαααΆα Offload stream ααααααααααΌαααΆαα’αα»αααααααα»αααααααααΆα§ααααααααααααΆαααΆααααα α - ααΆαα αααααΌαααΆααααααααααααΆαα .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; - ααΆαααααααααΆαααΆαααααααααααΆααααααΆαα½ααααααΆααααΆαααΆαα
αααααα·αα·αα
αααααααααααα½ααα·αα·ααα
Prometheus ; - αα·ααΈααΆα Peers αααααααΎααΎααααΈααααΆααααααΌαααααααΆαααΆαα½αααααΆαααααααααααααααααΎαααΆα HAProxy ααααΌαααΆααααααΈαα αα½αααΆααααΆαααΆαααααααααααααααΆαα Heartbeat αα·αααΆααααααΌααα·αααααααααααΆαα’αα·αααααΈαα
- αααΆαααΆαααααα "ααααΌ" ααααΌαααΆααααααααα ααΆαααααΆα "αααααα ααα»" αααα’αα»ααααΆαα±ααα’ααααααα αααααααααααααααΎαα αααα»ααααααα ααα»α§ααΆα ααα 1 αααα»αα αααα 10 ααΎααααΈαααααΎαααΆααααΌαα·ααΆαα
- ααΆαααααααααααααααααααααααααααααααα· (ααΆαααααΆα profiling.tasks αααα’αΆα ααα½αααααααααααααααααααααααα· ααΎα αα·ααα·α)α ααΆαααααααααααααααααααααααααααα·ααααΌαααΆαααΎα ααααα·αααΎααΆαααΊααααΆαααΆαααααααΎαααΈ 1000 ms α ααΎααααΈααΎααα·ααααααααααααααΆααααααααΆ "αααα αΆααααααα" ααααΌαααΆααααααααα Runtime API α¬ααΆα’αΆα ααααΎαα ααΆαααΎααααΈααααααααα·αα·α‘αΎααα·ααα αααααα ααα»α
- ααΆαααααααααΆαααΆαααααααααΆααααΆαα αΌαααααΎαααΆαααΈααα backend αααααααΎαα·ααΈααΆα SOCKS4;
- ααΆαααααααααΆαααΆααααααΈα α»ααααα αααααααΆααααααααΆααααααΆααααΆαααΎαααΆαααααΆαα TCP αααΆααα αα (TFO - TCP Fast Open, RFC 7413) αααα’αα»ααααΆαα±ααα’αααααΆαααααααα ααα½αααααα αΆαααααΆαααα‘αΎαααΆααααααΆαααααααΆααα½ααααα αΌαααΈαα½ααα αααα»αααααΎαα½α αα·αααα αΆαααΈααΈααα ααααΎαααΆαα αα αΆααΆααααααΆαα 3 ααα αΆααα»ααΆα αα·αααααΎα±ααααΆα’αΆα ααααΎαα·αααααααα ααααΆααααΆαααααΌαααααΆααααααΎαααΆααααααΆααα
- αααααααΆαααααΈααΆαααααααα
- "http-request replace-uri" ααΎααααΈαααα½α URL αααααααΎααααααααααααΆ;
- "tcp-request content do-resolve" αα·α "http-request do-resolve" αααααΆαααααααααΆα hostname;
- "tcp-request content set-dst" αα·α "tcp-request content set-dst-port" ααΎααααΈαααα½αα’αΆααααααΆα IP αα·αα αααααααα α
- ααΆααααααααααΌαα»αααααααααααΈα
- aes_gcm_dev αααααΆααααΆααα·ααααΈαααααααΈααααααααΎ AES128-GCM, AES192-GCM αα·α AES256-GCM algorithms;
- protobuf ααΎααααΈααΆαααααΆαα ααααΈααΆα Protocol Buffers;
- ungrpc ααΎααααΈααΆαααααΆαααΈααΆα gRPC α
ααααα: opennet.ru