Iimpawu eziphambili zokukhupha:
- I-API entsha yaziswa
Isicwangciso seDatha , ekuvumela ukuba ulawule izicwangciso ze-HAProxy kwi-fly nge-REST Web API. Ukubandakanya, unokongeza ngokuguquguqukayo kwaye ususe ii-backends kunye neeseva, wenze ii-ACL, utshintshe indlela yokucela, utshintshe izibophelelo zomphathi kwi-IP; - Yongeza umyalelo we-nbthread, okuvumela ukuba uqwalasele inani lemicu esetyenziswe kwi-HAProxy ukwenzela ukuba usebenze kakuhle kwii-CPU ezininzi. Ngokungagqibekanga, inani lemisonto yabasebenzi likhethwa ngokuxhomekeke kwi-CPU cores ekhoyo kwindawo yangoku, kwaye kwiimeko zefu ukungagqibeki ngumsonto omnye. Ukumisela imida enzima, iinketho zendibano MAX_THREADS kunye ne-MAX_PROCS zongeziwe, ukunciphisa umda ophezulu kwinani leentambo kunye neenkqubo;
- Ukusetyenziswa komyalelo we-bind kubaphathi ababophelelayo kwiidilesi zenethiwekhi kwenziwe lula. Xa ucwangcisa, akusekho mfuneko yokuchaza iiparameters zenkqubo - ngokuzenzekelayo, uxhulumaniso luya kusasazwa phakathi kwemisonto ngokuxhomekeke kwinani loqhagamshelwano olusebenzayo.
- Ukuseta iilog xa uqhuba kwizikhongozeli ezizimeleyo kwenziwe lula - ilog ngoku ingathunyelwa kwi stdout kunye ne stderr, nakuyo nayiphi na inkcazo yefayile ekhoyo (umzekelo, “log fd@1 local0”);
- Inkxaso ye-HTX (i-Native HTTP Representation) inikwe amandla ngokungagqibekanga, ivumela ukulinganisa xa usebenzisa iimpawu eziphambili ezifana ne-HTTP / 2 yokuphela, i-Layer 7 Retries kunye ne-gRPC. I-HTX ayithathi ndawo iiheader endaweni, kodwa inciphisa umsebenzi wokuguqula ukususa kunye nokongeza i-header entsha ukuya ekupheleni koluhlu, ekuvumela ukuba ulawule naluphi na uhlobo olwandisiweyo lweprotocol ye-HTTP, ugcina i-semantics yokuqala yezihloko kwaye ikuvumela ukufezekisa ukusebenza okuphezulu xa uguqulela i-HTTP / 2 ukuya kwi-HTTP / 1.1 kunye nokunye;
- Inkxaso esemthethweni eyongeziweyo ye-End-to-End HTTP / 2 imodi (ukulungiswa kwazo zonke izigaba kwi-HTTP / 2, kubandakanywa iifowuni kwi-backend, kwaye kungekhona nje ukusebenzisana phakathi kwe-proxy kunye nomxhasi);
- Inkxaso epheleleyo yokwenziwa kommeli we-bidirectional yeprotocol ye-gRPC iphunyeziwe ngokukwazi ukwahlula imisinga ye-gRPC, iqaqambisa imiyalezo yomntu ngamnye, ebonisa ukugcwala kwe-gRPC kwilogi kunye nokuhluza imiyalezo kusetyenziswa ii-ACLs. I-gRPC ikuvumela ukuba ulungelelanise umsebenzi wee-microservices kwiilwimi ezahlukeneyo zokucwangcisa ezisebenzisana nomnye usebenzisa i-API yehlabathi. Uthungelwano lothungelwano kwi-gRPC luphunyezwe ngaphezulu kwe-HTTP/2 iprothokholi kwaye isekwe kusetyenziso lweProtocol Buffers yokulandelelana kwedatha.
- Inkxaso eyongeziweyo ye "Layer 7 Retries" imowudi, ekuvumela ukuba uthumele izicelo eziphindaphindiweyo ze-HTTP kwimeko yokusilela kwesoftware engahambelani neengxaki zokuseka unxibelelwano lwenethiwekhi (umzekelo, ukuba akukho mpendulo okanye impendulo engenanto POST isicelo). Ukukhubaza imodi, iflegi ethi "disable-l7-retry" yongezwe kwi-"http-request" inketho, kwaye inketho ethi "zama kwakhona" yongezwe ukulungiswa kakuhle kwizinto ezingagqibekanga, mamela kunye namacandelo omva. Ezi mpawu zilandelayo ziyafumaneka ukuze zithunyelwe kwakhona: zonke-iphinde zizanywa-iimpazamo, akukho, conn-ukusilela, impendulo engenanto, ijunk-response, impendulo-timeout, 0rtt-yaliwe, kunye nokubophelela ukubuyisela iikhowudi zesimo (404, njl.) ;
- Umphathi wenkqubo omtsha uphunyeziwe, okuvumela ukuba uqwalasele ukubiza iifayile eziphunyezwayo zangaphandle kunye nabaphangi be-HAProxy.
Ngokomzekelo, i-API yeSicwangciso seDatha (/usr/sbin/dataplaneapi), kunye neenjini ezahlukeneyo zokuSebenza komjelo wokuhambisa, ziphunyezwa ngendlela yomphathi onjalo wangaphandle; - Izibophelelo zongezwe kwi-.NET Core, Go, Lua kunye nePython ekuphuhliseni i-SPOE (i-Streaming Processing Offload Engine) kunye ne-SPOP (i-Streaming Processing Offload Protocol) izandiso. Ngaphambili, uphuhliso olwandisiweyo lwaluxhaswa kuphela kwi-C;
- Ukongeza i-spoa-mirror handler yangaphandle (/usr/sbin/spoa-mirror) kwizicelo zemirroring kumncedisi owahlukileyo (umzekelo, ukukopa inxalenye yetrafikhi yokuvelisa ukuvavanya indawo yovavanyo phantsi komthwalo wangempela);
- Yaziswa
HAProxy Kubernetes Umlawuli Wokungena ukuqinisekisa ukudityaniswa kunye neqonga leKubernetes; - Inkxaso eyongeziweyo eyakhelwe-ngaphakathi yokuthumela iinkcukacha-manani kwinkqubo yokubeka iliso
Prometheus ; - IProtocol yePeers, esetyenziselwa ukutshintshiselana ngolwazi kunye namanye ama-node aqhuba i-HAProxy, yandisiwe. Kubandakanya inkxaso eyongezelelweyo ye-Heartbeat kunye nokuhanjiswa kwedatha efihliweyo;
- Iparameter "yesampuli" yongezwe kwi-"log" yomyalelo, evumela ukuba ulahle kuphela inxalenye yezicelo kwilogi, umzekelo 1 ngaphandle kwe-10, ukwenza isampuli yohlalutyo;
- Imo eyongeziweyo yeprofayili ezenzekelayo (iprofiling.tasks Directive, enokuthi ithathe amaxabiso ngokuzenzekela, ivule kwaye icime). Iprofayili ezenzekelayo yenziwe ukuba umndilili wokulibaziseka udlula i-1000 ms. Ukujonga idatha yeprofayili, umyalelo "womboniso weprofayili" wongezwe kwi-Runtime API okanye kunokwenzeka ukuseta kwakhona izibalo kwilog;
- Inkxaso eyongeziweyo yokufikelela kwiiseva ze-backend usebenzisa i-SOCKS4 protocol;
- Inkxaso eyongeziweyo ekupheleni ukuya ekupheleni kwendlela yokuvula ngokukhawuleza uxhulumaniso lweTCP (TFO - TCP Fast Open, RFC 7413), ekuvumela ukuba unciphise inani lamanyathelo okuseta uqhagamshelo ngokudibanisa eyokuqala kwisicelo esinye kunye nenyathelo lesibini inkqubo yothethathethwano lwe-3-step classic kwaye yenza kube lula ukuthumela idatha kwinqanaba lokuqala lokuseka uxhumano;
- Iintshukumo ezitsha zongeziwe:
- "http-request replace-uri" endaweni ye-URL usebenzisa intetho eqhelekileyo;
- “tcp-request content do-resolve” kunye “ne-http-request do-resolve” yokusombulula igama lenginginya;
- I-"tcp-request content set-dst" kunye ne "tcp-request content set-dst-port" endaweni yedilesi ye-IP ekujoliswe kuyo kunye nezibuko.
- Kongezwe iimodyuli ezintsha zoguqulo:
- i-aes_gcm_dev yokususa ukuntsonkotha kwemilambo usebenzisa i-AES128-GCM, i-AES192-GCM kunye ne-AES256-GCM algorithms;
- iprotobuf yokutsala imihlaba kwimiyalezo yeProtocol Buffers;
- ungrpc ukukhupha imihlaba kwimiyalezo ye gRPC.
umthombo: opennet.ru