HTTP/TCP koormuse tasakaalustaja HAProxy 2.0 vÀljaanne

Avaldatud koormusbalansiirija vĂ€ljaanne HAProxy 2.0, mis vĂ”imaldab jaotada HTTP-liiklust ja erinevaid TCP pĂ€ringuid serverite rĂŒhma vahel, arvestades erinevaid tegureid (nĂ€iteks kontrollib serverite kĂ€ttesaadavust, hindab koormust, on DDoS-i vastupanu meetmed) ja teeb algse andmete filtreerimise (nĂ€iteks on vĂ”imalik töödelda HTTP-pealkirju, filtreerida valede pĂ€ringu parameetrite edastamist, blokeerida SQL sĂŒstimist ja XSS-i, lisada sisu töötlemise agente). HAProxy suudab samuti rakenduda koordineerida komponentide koostoimet mikroteenuste arhitektuuri sĂŒsteemides. Projekti kood on kirjutatud C program keeles ja toimetatakse on GPLv2 litsentsi alusel. Projekti kasutatakse paljude suurte veebisaitide, sealhulgas Airbnb, Alibaba, GitHub, Imgur, Instagram, Reddit, StackOverflow, Tumblr, Twitter ja Vimeo, poolt.

VĂ€ljalaske peamised omadused:

  • Tutvustatud uus API Andmeplaan, mis vĂ”imaldab reaalajas hallata HAProxy seadeid REST Web API kaudu. Sealhulgas on vĂ”imalik dĂŒnaamiliselt lisada ja eemaldada tagapoolseid ja servereid, luua ACL-e, muuta pĂ€ringute suunamist, muuta töötlejate sidumisi IP-dele;
  • Lisatud on direktiiv nbthread, mis vĂ”imaldab seadistada HAProxy-s kasutatavate lĂ”ime arvu mitme tuuma CPU optimeerimiseks. Vaikimisi valitakse töölĂ”ngade arv vastavalt hetkel saadaval olevatele CPU tuumadele, samas kui pilvesituatsioonides mÀÀratakse vaikimisi ĂŒks lĂ”ng. Rangete piiride seadmiseks on lisatud kompileerimisvalikud MAX_THREADS ja MAX_PROCS, mis piiravad ĂŒlemise piiri lĂ”imede ja protsesside arvule;
  • Lihtsustatud on bind direktiivi kasutamine töötlejate sidumiseks vĂ”rguaadressidele. Seadistamisel pole nĂŒĂŒd enam vajalik protsessi parameetrite mÀÀramine — vaikimisi jagatakse ĂŒhendused lĂ”imede vahel vastavalt aktiivsete ĂŒhenduste arvule.
  • Logide seadistamine eraldatud konteinerites on lihtsustatud — logi saab nĂŒĂŒd suunata stdout ja stderr ning igasse olemasolevasse failidesse (nĂ€iteks "log fd@1 local0");
  • Vaikimisi on lubatud HTX (Native HTTP Representation) tugi, mis vĂ”imaldab saavutada tasakaalu, rakendades tĂ€iustatud funktsioone nagu end-to-end HTTP/2, Layer 7 Retry'd ja gRPC. HTX ei asenda pĂ€iseid kohapeal, vaid viib muudatused ellu, eemaldades ja lisades uue pĂ€ise nimekirja lĂ”ppu, vĂ”imaldades manipuleerida kĂ”igi HTTP protokolli laiendatud variantidega, sĂ€ilitades pĂ€iste algse semantika ja tĂ”hustades jĂ”udlust HTTP/2 ĂŒlekandel HTTP/1.1-le ja vastupidi;
  • Rohkem ametlikku tuge end-to-end HTTP/2 reĆŸiimile (kĂ€sitleb kĂ”iki etappe HTTP/2-s, sealhulgas tagaplaanile pöördumisi, mitte ainult kliendiga suhtlemist);
  • Rakendatud on tĂ€ielik kahe suuna gRPC protokolli pööramisvĂ”ime, vĂ”imaldades gRPC voogude analĂŒĂŒsimist, eraldi sĂ”numite esitlemist, gRPC liikluse logisse kajastamist ja sĂ”numite filtreerimist ACL-i abil. gRPC vĂ”imaldab korraldada mikroteenuste tööd erinevates programmeerimiskeeltes, mis suhtlevad omavahel universaalse API kaudu. gRPC vĂ”rgusuhtlus teostatakse HTTP/2 protokolli kohal ja pĂ”hineb andmete serialiseerimisel Protocol Buffers'i abil.
  • Lisatud on "Layer 7 Retry'd" reĆŸiimi tugi, mis vĂ”imaldab saata korduvaid HTTP pĂ€ringuid tarkvaravigade korral, mis ei ole seotud vĂ”rguĂŒhenduse loomise probleemidega (nĂ€iteks, kui puudub vastus vĂ”i POST pĂ€ringule on tĂŒhi vastus). ReĆŸiimi keelamiseks on "http-request" valikusse lisatud lipp "disable-l7-retry", ning tĂ€iendava seadistuse jaoks on sektsioonides defaults, listen ja backend saadaval valik "retry-on". JĂ€rgmised tingimused on saadaval korduvate saatmiste jaoks: all-retryable-errors, none, conn-failure, empty-response, junk-response, response-timeout, 0rtt-rejected, samuti seotud tagastatavate olekukoodidega (404 jne);
  • Rakendatud on uus protsessihaldur (Process Manager), mis vĂ”imaldab konfigureerida vĂ€liste tĂ€idetavate failide helistamist töötlemise jaoks HAProxy jaoks.
    NÀiteks sellise vÀlise töötlejana on rakendatud API Data Plan (/usr/sbin/dataplaneapi) ning erinevaid Offload-voogude töötlemise mootorite.
  • .NET Core, Go, Lua ja Pythonile on lisatud sidemed SPOE (Stream Processing Offload Engine) ja SPOP (Stream Processing Offload Protocol) laienduste arendamiseks. Varem oli toetatud laienduste arendamine ainult C keeles;
  • Lisatud vĂ€line töötleja spoa-mirror (\/usr\/sbin\/spoa-mirror), et peegeldada pĂ€ringuid eraldi serverisse (nĂ€iteks tööalase liikluse osade kopeerimiseks eksperimentaalse keskkonna testimise jaoks tegeliku koormuse all);
  • Esitletud HAProxy Kubernetes Ingress Controller Kuna vĂ”imaldab integreerimist Kubernetes platvormiga;
  • Lisatud sisseehitatud tugi statistika eksportimiseks monitooringusĂŒsteemi Prometheus;
  • TĂ€psem Peers Protocoli protokoll, mida kasutatakse teabe vahetamiseks teiste HAProxy sĂ”lmede vahel. Sealhulgas on lisatud tugi Heartbeat'ile ja andmete krĂŒpteerimisele;
  • Log direktiivile on lisatud parameeter 'sample', mis lubab logida ainult osa pĂ€ringutest, nĂ€iteks 1 kĂŒmnest, analĂŒĂŒtilise valimi ettevalmistamiseks;
  • Lisatud automaatse profileerimise reĆŸiim (direktiiv profiling.tasks, mis vĂ”ib vĂ”tta vÀÀrtusi auto, on ja off). Automaatne profileerimine aktiveeritakse, kui keskmine latentsus ĂŒletab 1000 ms piiri. Profileerimistulemuste vaatamiseks on lisatud 'show profiling' kĂ€sk Runtime API-sse vĂ”i on vĂ”imalus logisse statistika nullida;
  • Lisatud tugi taustserveritele pöördumiseks SOCKS4 protokolli abil;
  • Lisatud lĂ”pp-punktide (end-to-end) tugi TCP kiirkontakti mehhanismi (TFO — TCP Fast Open, RFC 7413), mis vĂ”imaldab vĂ€hendada ĂŒhenduse loomise samme, kombineerides esimesed ja teised sammud klassikalisest 3-sammulisest ĂŒhenduse kokkuleppe protsessist ĂŒhte pĂ€ringusse ning vĂ”imaldab andmete saatmist ĂŒhenduse loomise algfaasis;
  • Lisatud uusi toiminguid:
    • «http-request replace-uri» URL asendamiseks regulaars vĂ€ljendi 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-aadresse ja pordi seadmiseks.
  • Lisatud uusi teisendamooduleid:
    • aes_gcm_dev voogude dekrĂŒpteerimiseks kasutades AES128-GCM, AES192-GCM ja AES256-GCM algoritme;
    • protobuf, et vĂ€lja vĂ”tta vĂ€ljad Protocol Buffers sĂ”numitest;
    • ungrpc, et vĂ€lja vĂ”tta vĂ€ljad gRPC sĂ”numitest.

    Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster