UtgÄvan av HTTP/TCP-lastbalanseraren HAProxy 2.0

Publicerad utgÄvan av en belastningsbalanserare HAProxy 2.0, som gör det möjligt att fördela HTTP-trafik och godtyckliga TCP-förfrÄgningar mellan en grupp servrar, med hÀnsyn till flera faktorer (till exempel kontrollerar serverns tillgÀnglighet, bedömer belastningsnivÄer, har motÄtgÀrder mot DDoS) och genomför en första datafiltrering (till exempel kan HTTP-huvuden analyseras, överföring av ogiltiga begÀrningsparametrar filtreras, SQL-injektion och XSS blockeras, och innehÄllsbehandlingsagenter kopplas in). HAProxy kan ocksÄ anvÀndas anvÀndas för att samordna interaktionen mellan komponenter i system baserade pÄ mikrotjÀnstarkitektur. Projektkoden Àr skriven i C och levereras licensieras under GPLv2. Projektet anvÀnds av mÄnga stora webbplatser, inklusive Airbnb, Alibaba, GitHub, Imgur, Instagram, Reddit, StackOverflow, Tumblr, Twitter och Vimeo.

Nyckelfunktioner i utgÄvan:

  • En ny API Data Plan, vilket gör det möjligt att pĂ„ plats hantera instĂ€llningarna för HAProxy via REST Web API. Bland annat kan backendservrar och servrar dynamiskt lĂ€ggas till och tas bort, ACL skapas, begĂ€rningsruttning modifieras och hanterare kopplas till IP-adresser;
  • Direktivet nbthread har lagts till, vilket tillĂ„ter anpassning av antalet trĂ„dar som anvĂ€nds i HAProxy för att optimera arbetet pĂ„ flerkĂ€rniga CPU:er. Som standard vĂ€ljs antalet arbetstrĂ„dar beroende pĂ„ antalet tillgĂ€ngliga CPU-kĂ€rnor i den aktuella miljön, och i molnmiljöer sĂ€tts en trĂ„d som standard. För att stĂ€lla in strikta begrĂ€nsningar har kompilationsalternativen MAX_THREADS och MAX_PROCS lagts till, vilket begrĂ€nsar det övre grĂ€nsvĂ€rdet för antalet trĂ„dar och processer;
  • AnvĂ€ndningen av direktivet bind för att koppla hanterare till nĂ€tverksadresser har förenklats. Vid konfigurationen Ă€r det nu inte nödvĂ€ndigt att definiera processparametrar — som standard kommer anslutningar att fördelas över trĂ„darna beroende pĂ„ antalet aktiva anslutningar.
  • InstĂ€llningen av loggar vid start i isolerade containrar har förenklats — loggen kan nu dirigeras till stdout och stderr, samt till vilken befintlig filbeskrivare som helst (till exempel "log fd@1 local0");
  • HTX-stöd (Native HTTP Representation) Ă€r aktiverat som standard, vilket möjliggör belastningsbalansering vid anvĂ€ndning av avancerade funktioner som end-to-end HTTP/2, Layer 7 Retries och gRPC. HTX ersĂ€tter inte headers pĂ„ plats, utan reducerar Ă€ndringar till att ta bort och lĂ€gga till en ny header i slutet av listan, vilket möjliggör manipulation av alla avancerade varianter av HTTP-protokollet, bevarar den ursprungliga semantiken hos headers och gör det möjligt att uppnĂ„ högre prestanda vid översĂ€ttning av HTTP/2 till HTTP/1.1 och vice versa.
  • Officiellt stöd för End-to-End HTTP/2-lĂ€ge har lagts till (bearbetar alla faser i HTTP/2, inklusive anrop till backend, inte bara interaktion mellan proxy och klient).
  • Fullt stöd för tvĂ„vĂ€gs proxyhantering av gRPC-protokollet har implementerats, vilket möjliggör parsing av gRPC-strömmar, isolering av individuella meddelanden, loggning av gRPC-trafik och filtrering av meddelanden med hjĂ€lp av ACL. gRPC möjliggör arbete med mikrotjĂ€nster pĂ„ olika programmeringssprĂ„k som kommunicerar via ett universellt API. NĂ€tverkskommunikationen i gRPC implementeras ovanför HTTP/2-protokollet och baseras pĂ„ anvĂ€ndning av Protocol Buffers för dat serialisering.
  • Stöd för "Layer 7 Retries"-lĂ€ge har lagts till, vilket gör det möjligt att skicka om HTTP-förfrĂ„gningar vid programmeringsfel som inte Ă€r relaterade till problem med installation av nĂ€tverksanslutningen (till exempel vid brist pĂ„ svar eller tomt svar pĂ„ en POST-förfrĂ„gan). För att stĂ€nga av lĂ€get har flaggan "disable-l7-retry" lagts till i "http-request"-alternativet, och för finjustering har avsnitten defaults, listen och backend fĂ„tt alternativet "retry-on". Följande kriterier Ă€r tillgĂ€ngliga för Ă„terutsĂ€ndning: all-retryable-errors, none, conn-failure, empty-response, junk-response, response-timeout, 0rtt-rejected, samt bindning till returkoder (404 och sĂ„ vidare).
  • En ny processhanterare (Process Manager) har implementerats, vilket möjliggör anpassning av anrop till externa exekverbara filer med hanterare för HAProxy.
    Till exempel har API Data Plan ( /usr/sbin/dataplaneapi) implementerats som en extern hanterare, samt olika engine Offload-behandlingar.
  • Bindningar för utveckling av SPOE (Stream Processing Offload Engine) och SPOP (Stream Processing Offload Protocol) har lagts till för .NET Core, Go, Lua och Python. Tidigare stöddes utveckling av tillĂ€gg endast pĂ„ C.
  • En extern spoa-mirror behörighetskontroll har lagts till ( /usr/sbin/spoa-mirror ) för att spegla förfrĂ„gningar till en separat server (till exempel för att kopiera en del av arbetsbelastningen för att testa en experimentell miljö med verklig belastning);
  • Presenteras HAProxy Kubernetes Ingress Controller för att sĂ€kerstĂ€lla integration med Kubernetes-plattformen;
  • Inbyggt stöd för att exportera statistik till övervakningssystem har lagts till. Prometheus;
  • Peers Protocol har expanderats, vilket anvĂ€nds för att utbyta information med andra noder med HAProxy. Bland annat har stöd för Heartbeat och krypterad datatransfer lagts till;
  • Parameter 'sample' har lagts till direktivet 'log', vilket gör att endast en del av förfrĂ„gningarna loggas, till exempel en av tio, för att skapa en analytisk urval;
  • Ett automatiskt profileringslĂ€ge har lagts till (direktiv profiling.tasks, som kan anta vĂ€rdena auto, on och off). Automatisk profilering aktiveras om den genomsnittliga fördröjningen överskrider 1000 ms. För att visa profileringsdata har kommandot 'show profiling' lagts till i Runtime API, eller det finns möjlighet att Ă„terstĂ€lla statistiken till loggen;
  • Stöd för att adressera backend-servrar med SOCKS4-protokollet har lagts till;
  • Effektiv slut-och-slut-stöd (end-to-end) för snabb öppningsmekanism av TCP-anslutningar (TFO — TCP Fast Open, RFC 7413) har lagts till, vilket minskar antalet steg i anslutningsprocessen genom att kombinera första och andra steget i den klassiska tre-steppsenordningen, vilket gör det möjligt att skicka data i det inledande skedet av anslutningsupprĂ€ttandet;
  • Nya Ă„tgĂ€rder har lagts till:
    • «http-request replace-uri» för att ersĂ€tta URL med hjĂ€lp av ett reguljĂ€rt uttryck;
    • «tcp-request content do-resolve» och «http-request do-resolve» för att lösa vĂ€rdnamn;
    • «tcp-request content set-dst» och «tcp-request content set-dst-port» för att sĂ€tta mĂ„l-IP-adress och port.
  • Nya konverteringsmoduler har lagts till:
    • aes_gcm_dev för avkryptering av strömmar med algoritmerna AES128-GCM, AES192-GCM och AES256-GCM;
    • protobuf för att extrahera fĂ€lt frĂ„n meddelanden i Protocol Buffers;
    • ungrpc för att extrahera fĂ€lt frĂ„n gRPC-meddelanden.

    KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster