Gefa út HTTP/TCP jafnvægisbúnað HAProxy 2.0

birt losun álagsjafnara HA Proxy 2.0, sem gerir þér kleift að dreifa HTTP umferð og handahófskenndum TCP beiðnum á milli hóps netþjóna, að teknu tilliti til margra þátta (td athugar það framboð netþjóna, metur álagsstig, hefur DDoS mótvægisaðgerðir) og framkvæmir aðalgagnasíun ( til dæmis er hægt að flokka HTTP hausa, sía sendingar rangar fyrirspurnarfæribreytur, loka fyrir SQL og XSS skipti, tengja efnisvinnslumiðla). HAProxy getur líka gilda að samræma samspil íhluta í kerfum sem byggja á örþjónustuarkitektúr. Verkefnakóði er skrifaður í C ​​og til staðar leyfi samkvæmt GPLv2. Verkefnið er notað á mörgum stórum síðum, þar á meðal Airbnb, Alibaba, GitHub, Imgur, Instagram, Reddit, StackOverflow, Tumblr, Twitter og Vimeo.

Helstu útgáfueiginleikar:

  • Nýtt API kynnt Gagnaáætlun, sem gerir þér kleift að stjórna HAProxy stillingum á flugi í gegnum REST Web API. Þar á meðal geturðu bætt við og fjarlægt bakenda og netþjóna á virkan hátt, búið til ACL, breytt beiðnarleið, breytt meðhöndlunarbindingum við IP;
  • Bætti við nbthread tilskipuninni, sem gerir þér kleift að stilla fjölda þráða sem notaðir eru í HAProxy til að hámarka afköst á fjölkjarna örgjörva. Sjálfgefið er að fjöldi starfsmannaþráða er valinn eftir örgjörvakjarna sem eru tiltækir í núverandi umhverfi og í skýjaumhverfi er sjálfgefið einn þráður. Til að setja hörð mörk hefur samsetningarvalkostum MAX_THREADS og MAX_PROCS verið bætt við, sem takmarkar efri mörk á fjölda þráða og ferla;
  • Notkun binditilskipunarinnar til að binda meðhöndlunaraðila við netföng hefur verið einfölduð. Við uppsetningu er ekki lengur nauðsynlegt að skilgreina ferlibreytur - sjálfgefið verður tengingum dreift á þræði eftir fjölda virkra tenginga.
  • Uppsetning annála þegar keyrð er í einangruðum gámum hefur verið einfölduð - nú er hægt að senda annálinn til stdout og stderr, sem og á hvaða skráarlýsingu sem er fyrir hendi (til dæmis „log fd@1 local0“);
  • Stuðningur fyrir HTX (Native HTTP Representation) er sjálfgefið virkur, sem gerir kleift að halda jafnvægi þegar háþróaðir eiginleikar eru notaðir eins og end-to-end HTTP/2, Layer 7 Retries og gRPC. HTX kemur ekki í stað hausa sem eru á sínum stað, heldur minnkar breytingaraðgerðina í að fjarlægja og bæta nýjum haus við enda listans, sem gerir þér kleift að vinna með öll útvíkkuð afbrigði af HTTP samskiptareglunum, varðveita upprunalega merkingarfræði hausanna og leyfa þér til að ná meiri afköstum þegar þú þýðir HTTP/2 yfir á HTTP/1.1 og öfugt;
  • Bætt við opinberum stuðningi við end-to-end HTTP/2 ham (vinnsla á öllum stigum í HTTP/2, þar með talið símtöl í bakendann, en ekki bara samskipti milli umboðsins og biðlarans);
  • Fullur stuðningur við tvíátta umboð á gRPC samskiptareglunum hefur verið útfært með getu til að flokka gRPC strauma, auðkenna einstök skilaboð, endurspegla gRPC umferð í skránni og sía skilaboð með ACL. gRPC gerir þér kleift að skipuleggja vinnu örþjónustu á ýmsum forritunarmálum sem hafa samskipti sín á milli með því að nota alhliða API. Netsamskipti í gRPC eru útfærð ofan á HTTP/2 samskiptareglur og byggjast á notkun á Protocol Buffers fyrir raðgreiningu gagna.
  • Bætti við stuðningi við „Layer 7 Retries“ stillinguna, sem gerir þér kleift að senda endurteknar HTTP beiðnir ef upp koma hugbúnaðarbilanir sem tengjast ekki vandamálum við að koma á nettengingu (til dæmis ef ekkert svar er eða tómt svar við a. POST beiðni). Til að slökkva á stillingunni hefur „disable-l7-retry“ fánanum verið bætt við „http-request“ valmöguleikann og „Rery-on“ valmöguleikinn hefur verið bætt við til að fínstilla sjálfgefna, hlustunar- og bakenda hluta. Eftirfarandi merki eru tiltæk til að senda aftur: villur sem hægt er að endurtaka, engin, samtenging bilun, tóm-svar, rusl-svörun, svarfrestur, 0rtt-rejected, auk bindingar við skilastöðukóða (404, o.s.frv.) ;
  • Nýr vinnslustjóri hefur verið innleiddur, sem gerir þér kleift að stilla kalla á ytri keyrsluskrár með meðhöndlum fyrir HAProxy.
    Til dæmis, Data Plan API (/usr/sbin/dataplaneapi), sem og ýmsar Offload straumvinnsluvélar, eru útfærðar í formi slíks utanaðkomandi meðhöndlunar;

  • Bindunum hefur verið bætt við fyrir .NET Core, Go, Lua og Python til að þróa SPOE (Stream Processing Offload Engine) og SPOP (Stream Processing Offload Protocol) viðbætur. Áður var framlengingarþróun aðeins studd í C;
  • Bætti við utanaðkomandi spoa-mirror handler (/usr/sbin/spoa-mirror) til að spegla beiðnir á sérstakan netþjón (til dæmis til að afrita hluta framleiðsluumferðar til að prófa tilraunaumhverfi undir raunverulegu álagi);
  • Kynnt HAProxy Kubernetes Ingress Controller að tryggja samþættingu við Kubernetes vettvang;
  • Bætt við innbyggðum stuðningi við útflutning á tölfræði í eftirlitskerfið Prometheus;
  • Jafningjabókunin, notuð til að skiptast á upplýsingum við aðra hnúta sem keyra HAProxy, hefur verið framlengd. Þar með talið aukinn stuðning fyrir Heartbeat og dulkóðaða gagnaflutning;
  • „Stak“ færibreytunni hefur verið bætt við „log“ tilskipunina, sem gerir þér kleift að henda aðeins hluta beiðna inn í annálinn, til dæmis 1 af hverjum 10, til að mynda greiningarsýni;
  • Bætt við sjálfvirkri stillingarstillingu (profiling.tasks tilskipun, sem getur tekið gildin sjálfvirkt, kveikt og slökkt). Sjálfvirk prófílgreining er virkjuð ef meðaltöf fer yfir 1000 ms. Til að skoða prófílgögn hefur skipuninni „show profiling“ verið bætt við Runtime API eða það er hægt að endurstilla tölfræði í annálinn;
  • Bætti við stuðningi við að fá aðgang að bakendaþjónum með því að nota SOCKS4 samskiptareglur;
  • Bætti við enda-til-enda stuðningi fyrir vélbúnaðinn til að opna TCP tengingar fljótt (TFO - TCP Fast Open, RFC 7413), sem gerir þér kleift að fækka uppsetningarskrefum tenginga með því að sameina það fyrsta í eina beiðni og annað skref í klassískt þriggja þrepa samningaferli um tengingar og gerir það mögulegt að senda gögn á upphafsstigi tengingar;
  • Nýjum aðgerðum bætt við:
    • "http-request replace-uri" til að skipta um vefslóð með því að nota venjulega segð;
    • „tcp-request content do-resolve“ og „http-request do-resolve“ til að leysa hýsingarheitið;
    • „tcp-request content set-dst“ og „tcp-request content set-dst-port“ til að koma í stað IP-tölu og gáttar.
  • Bætt við nýjum viðskiptaeiningum:
    • aes_gcm_dev til að afkóða strauma með því að nota AES128-GCM, AES192-GCM og AES256-GCM reiknirit;
    • protobuf til að draga út reiti úr skilaboðum frá Protocol Buffers;
    • ungrpc til að draga reiti úr gRPC skilaboðum.

    Heimild: opennet.ru

Bæta við athugasemd