Välja anti HTTP/TCP koormuse tasakaalustaja HAProxy 2.0.

Avaldatud koormuse laadimise väljaanne HAProxy 2.0, mis võimaldab jaotada HTTP-liiklust ja erinevaid TCP-päringuid serverite rühma vahel, arvestades mitmeid tegureid (näiteks kontrollib serverite kättesaadavust, hindab koormuse taset, omab DDoS-vastaseid meetmeid) ning teostab andmete esmast filtreerimist (nt saab analüüsida HTTP-pealkirju, filtreerida ebaõigeid päringu parameetreid, blokeerida SQL süstimist ja XSS-d, liita sisuhaldusagente). HAProxy võib samuti rakenduda olla kooste komponentide koordineerimiseks mikroteenuste arhitektuuril põhinevates süsteemides. Projekti kood on kirjutatud keeles C ja on saadaval on GNU GPLv2 litsentsi all. Projekti kasutatakse paljude suurte veebisaitide, sealhulgas Airbnb, Alibaba, GitHub, Imgur, Instagram, Reddit, StackOverflow, Tumblr, Twitter ja Vimeo poolt.

Väljaande võtmeelemendid:

  • Uus API Data Plan, mis võimaldab reaalajas hallata HAProxy seadeid läbi REST Web API. Sealhulgas on võimalik dünaamiliselt lisada ja eemaldada tagasiteenuseid ja servereid, luua ACL-e, muuta päringute marsruutimist, muuta töötlejate seoseid IP-dega;
  • Lisatud on direktiiv nbthread, mis võimaldab seadistada HAProxy kasutatavate lõimede arvu mitme tuumaga CPU optimeerimiseks. Vaikimisi valitakse töötlõimede arv vastavalt hetke keskkonnas kättesaadavatele CPU tuumadele, samas kui pilvekeskkondades seadistatakse vaikimisi üks lõim. Rangete piirangute seadmiseks on lisatud kompilaatori valikud MAX_THREADS ja MAX_PROCS, mis piiravad lõimede ja protsesside arvu ülemist piiri.
  • Bind direktiivi kasutamine on lihtsustatud, et siduda töötlejad võrgu aadressidega. Seadistamisel ei ole nüüd vajalik protsessi parameetrite määramine — vaikimisi jaotatakse ühendused lõimede vahel sõltuvalt aktiivsete ühenduste arvust.
  • Logide seadistamine on lihtsustatud isoleeritud konteinerites käivitamisel — logi saab nüüd suunata stdout-i ja stderr-i, samuti ükskõik millises olemasolevas failide descriptoris (näiteks "log fd@1 local0");
  • Vaikimisi on sisse lülitatud HTX (Native HTTP Representation) toetus, mis tagab tasakaalu, kui kasutatakse täiustatud võimalusi, nagu end-to-end HTTP/2, Layer 7 Retryd ja gRPC. HTX ei asenda koha peal olevaid päiseid, vaid vähendab muutmisoperatsiooni uue päise lisamise ja vanade eemaldamisega loendi lõppu, mis võimaldab manipuleerida kõigi HTTP protokolli täiustatud variantidega, säilitades algse päiste semantika ja võimaldades saavutada suuremat jõudlust, muundades HTTP/2 HTTP/1.1-ks ja vastupidi;
  • Lisatud ametlik toetus End-to-End HTTP/2 režiimile (käsitletakse kõiki etappe HTTP/2-s, sealhulgas taotlusi tagasisuunal, mitte ainult kliendiga suhtlemist proksi kaudu);
  • Täielik gRPC protokolli kahepoolsuse toetamine on rakendatud, võimaldades gRPC voogude analüüsi, eraldades individuaalsed sõnumid, kajastades gRPC liiklust logis ja filtreerides sõnumeid ACL-i kaudu. gRPC võimaldab erinevates programmeerimiskeeltes mikroteenuste koostööd universaalse API kaudu. gRPC võrgusidet teostatakse HTTP/2 protokolli peal ja see põhineb andmete serialiseerimisel Protocol Buffers abil.
  • Lisatud 'Layer 7 Retries' režiimi tugi, mis võimaldab saata korduvaid HTTP-päringuid tarkvaravea korral, mis ei ole seotud võrguühenduse loomise probleemidega (näiteks vastuse puudumisel või tühja vastuse korral POST-päringus). Režiimi väljalülitamiseks on 'http-request' suvandisse lisatud lipukene 'disable-l7-retry', ning täiendavaks kohandamiseks on osadele defaults, listen ja backend lisatud valik 'retry-on'. Korduvate saatmiseks on saadaval järgmised tunnused: all-retryable-errors, none, conn-failure, empty-response, junk-response, response-timeout, 0rtt-rejected, samuti sidumine tagastatavate olekukoode (nt 404);
  • Uus protsessihaldur (Process Manager) võimaldab konfigureerida väliste teostatavate failide kõnesid töötlusprotsessoritele HAProxy jaoks.
    Näiteks sellise välise töötlustehnikana on rakendatud API Data Plan (/usr/sbin/dataplaneapi) ja erinevad voogude laadimisprotsessorid;
  • .NET Core'i, Go, Lua ja Python jaoks on lisatud ühendused SPOE (Stream Processing Offload Engine) ja SPOP (Stream Processing Offload Protocol) laienduste arendamiseks. Varasemalt toetati laienduste arendamist ainult C-s;
  • Lisatud on väline töötlustehnika spoa-mirror (/usr/sbin/spoa-mirror) päringute peegeldamiseks eraldi serverisse (näiteks, et kopeerida osa töövoogudest katsetamiseks eksperimentaalses keskkonnas reaalse koormuse all);
  • Esitletud HAProxy Kubernetes Ingress Controller Kubernetes platvormiga integreerimise tagamiseks;
  • Statistika eksportimise toetuse uus sisseehitus monitooringusüsteemi Prometheus;
  • Peers Protocol protokolli on täiustatud, mida kasutatakse teabe vahetamiseks teiste HAProxy sõlmede vahel. Sealhulgas on lisatud Heartbeat ja krüpteeritud andmeedastuse tugi;
  • Dikta „log“ on lisatud parameeter „sample“, mis võimaldab logida ainult osa päringutest, näiteks 1 kümnest, analüütilise valimi koostamiseks;
  • Automatiseeritud profileerimise režiim on lisatud (direktiiv profiling.tasks, mis võib võtta väärtusi auto, on ja off). Automatiseeritud profileerimine lülitatakse sisse, kui keskmine viivituse väärtus ületab 1000 ms. Profileerimisandmete vaatamiseks on Runtime API-s lisatud käsk „show profiling“ või on võimalik statistika logi lähtestada;
  • Toetatakse backend-serverite nõudmisi SOCKS4 protokolli kaudu;
  • Lisatud on lõpp-lõpuni tugi TCP ühenduste kiireks avamiseks (TFO — TCP Fast Open, RFC 7413), mis vähendab ühenduse loomise etappide arvu, kombineerides klassikalise 3-etapilise ühenduse kooskõlastamise protsessi esimesed ja teised sammud üheks päringuks ning võimaldab andmete saatmise ühenduse loomise algstaadiumis;
  • Uued toimingud on lisatud:
    • „http-request replace-uri“ URL-i asendamiseks regulaaravaldiste abil;
    • «tcp-request content do-resolve» ja «http-request do-resolve» hostinime lahendamiseks;
    • «tcp-request content set-dst» ja «tcp-request content set-dst-port» siht-IP-aadressi ja -pordi seadmiseks.
  • Uued konverteerimismodulid:
    • aes_gcm_dev voogude dekrüpteerimiseks, kasutades algoritme AES128-GCM, AES192-GCM ja AES256-GCM;
    • protobuf väljade ekstraheerimiseks Protocol Buffers sõnumitest;
    • ungrpc väljade ekstraheerimiseks gRPC sõnumitest.

    Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster