HAProxy 3.0 kommer med ydeevneforbedringer, certifikater og mere

HAProxy

HAProxy den populære open source software load balancer, for nylig annonceret lanceringen af den nye version af "HAProxy 3.0", som kommer med en række opdateringer, der lover at forbedre enkelhed, ydeevne, pålidelighed og sikkerhed.

For dem, der ikke kender til HAProxy, bør du vide, at dette er en belastningsbalancer, der giver dig mulighed for at distribuere HTTP-trafik og TCP-anmodninger mellem en gruppe af servere. HAProxy tager højde for adskillige faktorer, såsom servertilgængelighed, vurdering af belastningsniveau og implementering af DDoS-modforanstaltninger.

De vigtigste nye funktioner i HAProxy 3.0

Denne nye version, der præsenteres af HAProxy 3.0, er placeret som en langsigtet supportversion (LTS) og vil blive understøttet indtil 2029 og har en ny crt-butik sektion som giver en fleksibel måde at gemme og bruge SSL-certifikater, der adskiller lagring fra brug på en frontend. Dette giver dig mulighed for individuelt at angive placeringen af ​​hver certifikatkomponent, såsom certifikatfiler, nøglefiler og OCSP-svarfiler.

En anden af ​​de ændringer, der skiller sig ud, er Udvidede muligheder for afbalancering af Syslog-meddelelser. Det nævnes, at der er sket fremskridt, så du nu kan indstille vægte på serverlinjer i dine mode logbackends. I mellemtiden gælder den klæbrige algoritme, som var begrænset til at registrere backends, nu også for mode tcp.mode http backends.

Desuden i HAProxy det er nu muligt at sætte begrænsninger for visse anmodninger tilladt af HTTP/2-protokollen, der kan forårsage problemer, så du kan identificere defekte applikationer eller klienter med upassende adfærd

I HAProxy 3.0, et nyt "guide"-direktiv præsenteres, dette direktiv kan bruges i afsnit "frontend", "backend" og "lyt" at linke en unik identifikator til disse sektioner, gør det muligt at gemme tilhørende statistik, selv efter genstart. Derudover er kommandoen "dump statistikfil" blevet tilføjet for at gemme statistik til en fil, og "statistikfil"-direktivet er blevet tilføjet for at læse statistik fra en fil efter genstart.

Såvel, Mængden af ​​data, der kan indhentes, er blevet udvidet, så du kan anmode om oplysninger om antallet af åbne HTTP-sessioner, størrelsen af ​​anmodningskøen og det tilladte antal samtidige sessioner.

På den anden side, ogl ydeevne af hukommelseslagringsområder skabt med stick-table er steget markant ved at implementere en mere effektiv låsemekanisme, som markant forbedrer ydeevnen på flertrådede systemer. For eksempel, på et system med 80 tråde, er ydeevnen øget med 6 gange.

I multi-site-konfigurationer, hvor TLS-certifikatet er valgt baseret på værts-id'et, der leveres af TLS SNI-udvidelsen, er argumentet "default-crt" blevet tilføjet for at vælge et standardcertifikat, hvis eksisterende certifikater ikke matcher webstedet.

Se tilføjede handlingerne "set-fc-tos" og "set-bc-tos" for at erstatte DS-feltet (Differentierede tjenester) på IP-pakker på backend eller frontend, og handlingerne "set-fc-mark" og "set-bc-mark" for at markere IP-pakker til senere binding til en specifik routingtabel.

Det er nu forbudt at sende flere kommandoer til Runtime API'en i én anmodning adskilt af et linjeskifttegn; Det er forbudt at indstille nøgleordet "aktiveret" for dynamiske servere; og verifikation af ikke-standard URI'er er blevet styrket.

Af andre ændringer, der skiller sig ud af denne nye version:

  • Præfikset "@virt" kan bruges til at oprette virtuelle kort- og ACL-filer, der ikke er gemt på disken, med indhold, der administreres gennem Runtime API.
  • Præfikset "@opt" er tilgængeligt, som kun bruger virtuelle filer, hvis der ikke er rigtige filer på disken.
  •  Parsing er nu strengere under HTTP/1-behandling til validering af anmodningsmål.
  • Globale direktiver (http-err-codes og http-fail-codes) er blevet introduceret, som giver dig mulighed for at indstille HTTP-statuskoderne til at spore.
  • Uuid Fetch-metoden tager nu et valgfrit argument, der indstiller versionen af ​​UUID til 4 eller 7
  • Ydeevnen af ​​enkelt-trådede Lua-scripts indlæst ved hjælp af "lua-load"-direktivet er blevet væsentligt forbedret.
  • Formatering af loglinjer i JSON og CBOR er nu understøttet.
  • Det er nu muligt at oprette identifikatorer i UUIDv7-format.

endelig hvis du er det interesseret i at vide mere om det, kan du kontrollere detaljerne i følgende link.