HAProxy den populära belastningsbalanseraren för öppen källkod, meddelade nyligen lanseringen av den nya versionen av "HAProxy 3.0", som kommer med en serie uppdateringar som lovar att förbättra enkelhet, prestanda, tillförlitlighet och säkerhet.
För de som inte känner till HAProxy bör du veta att detta är en lastbalanserare som låter dig distribuera HTTP-trafik och TCP-förfrågningar mellan en grupp servrar. HAProxy tar hänsyn till många faktorer, såsom servertillgänglighet, belastningsnivåbedömning och implementering av DDoS-motåtgärder.
De viktigaste nya funktionerna i HAProxy 3.0
Denna nya version som presenteras av HAProxy 3.0, är positionerad som en långsiktig supportversion (LTS) och kommer att stödjas fram till 2029 och Den har en ny crt-butiksavdelning som ger ett flexibelt sätt att lagra och använda SSL-certifikat, vilket skiljer lagring från användning på en frontend. Detta gör att du kan specificera var varje certifikatkomponent var för sig, såsom certifikatfiler, nyckelfiler och OCSP-svarsfiler.
En annan av de förändringar som sticker ut är Utökade möjligheter för att balansera Syslog-meddelanden. Det nämns att framsteg har gjorts så att du nu kan ställa in vikter på serverlinjer i ditt läges logbackends. Samtidigt gäller den klibbiga algoritmen, som var begränsad till att registrera backends, nu även för mode tcp.mode http backends.
Dessutom i HAProxy det är nu möjligt att sätta begränsningar för vissa förfrågningar tillåts av HTTP/2-protokollet som kan orsaka problem, så att du kan identifiera felaktiga applikationer eller klienter med olämpligt beteende
I HAProxy 3.0, ett nytt "guide"-direktiv presenteras, detta direktiv kan användas i avsnitt "frontend", "backend" och "lyssna" för att länka en unik identifierare till dessa sektioner, gör att tillhörande statistik kan sparas även efter omstart. Dessutom har kommandot "dump statistikfil" lagts till för att spara statistik till en fil och direktivet "statistikfil" har lagts till för att läsa statistik från en fil efter omstart.
Också, Mängden data som kan erhållas har utökats, så att du kan begära information om antalet öppna HTTP-sessioner, storleken på förfrågningskön och det tillåtna antalet samtidiga sessioner.
Å andra sidan, ochl prestanda för minneslagringsområden skapade med stick-table har ökat avsevärt genom att implementera en mer effektiv låsmekanism, vilket avsevärt förbättrar prestandan på flertrådiga system. Till exempel, på ett system med 80 trådar, har prestandan ökat med 6 gånger.
I multi-site-konfigurationer där TLS-certifikatet väljs baserat på det värd-ID som tillhandahålls av TLS SNI-tillägget, har argumentet "default-crt" lagts till för att välja ett standardcertifikat om befintliga certifikat inte matchar platsen.
Se lade till åtgärderna "set-fc-tos" och "set-bc-tos" för att ersätta DS-fältet (Differentierade tjänster) på IP-paket på backend eller frontend, och åtgärderna "set-fc-mark" och "set-bc-mark" för att markera IP-paket för senare bindning till en specifik routingtabell.
Det är nu förbjudet att skicka flera kommandon till Runtime API i en begäran åtskilda av ett nyradstecken; Det är förbjudet att ställa in nyckelordet "enabled" för dynamiska servrar; och verifiering av icke-standardiserade URI:er har förstärkts.
Av andra förändringar som sticker ut av denna nya version:
- Prefixet "@virt" kan användas för att skapa virtuella kart- och ACL-filer som inte sparas på disk, med innehåll som hanteras via Runtime API.
- Prefixet "@opt" är tillgängligt som använder virtuella filer endast om det inte finns några riktiga filer på disken.
- Parsningen är nu strängare under HTTP/1-bearbetning för validering av begärandemål.
- Globala direktiv (http-err-codes och http-fail-codes) har införts som låter dig ställa in HTTP-statuskoderna för spårning.
- Metoden uuid Fetch tar nu ett valfritt argument som ställer in versionen av UUID till 4 eller 7
- Prestandan för enkeltrådade Lua-skript som laddas med "lua-load"-direktivet har förbättrats avsevärt.
- Formatering av loggrader i JSON och CBOR stöds nu.
- Det är nu möjligt att skapa identifierare i UUIDv7-format.
äntligen om du är det intresserad av att veta mer om detkan du kontrollera detaljerna i följande länk.