HAProxy 3.0 vjen me përmirësime të performancës, certifikata dhe më shumë

HAProxy

HAProxy balancuesi popullor i ngarkesës së softuerit me burim të hapur, së fundmi njoftoi nisjen e versioni i ri i "HAProxy 3.0", i cili vjen me një sërë përditësimesh që premtojnë të përmirësojnë thjeshtësinë, performancën, besueshmërinë dhe sigurinë.

Për ata që nuk dinë për HAProxy, duhet ta dini se kjo është një balancues i ngarkesës që ju lejon të shpërndani trafikun HTTP dhe kërkesat TCP ndërmjet një grupi serverësh. HAProxy merr parasysh faktorë të shumtë, si disponueshmëria e serverit, vlerësimi i nivelit të ngarkesës dhe zbatimi i kundërmasave DDoS.

Karakteristikat kryesore të reja të HAProxy 3.0

Ky version i ri që është paraqitur i HAProxy 3.0, pozicionohet si një version mbështetës afatgjatë (LTS) dhe do të mbështetet deri në vitin 2029 dhe ka një seksion të ri crt-store i cili ofron një mënyrë fleksibël për të ruajtur dhe përdorur certifikatat SSL, duke ndarë ruajtjen nga përdorimi në një frontend. Kjo ju lejon të specifikoni në mënyrë individuale vendndodhjet e secilit komponent të certifikatës, të tilla si skedarët e certifikatës, skedarët kryesorë dhe skedarët e përgjigjes OCSP.

Një tjetër nga ndryshimet që bie në sy është Aftësi të zgjeruara për balancimin e mesazheve të Syslog. Është përmendur se është bërë përparim në mënyrë që tani të mund të vendosni pesha në linjat e serverit në fundet e logback-ut tuaj të modalitetit. Ndërkohë, algoritmi ngjitës, i cili ishte kufizuar në regjistrimin e backend-eve, tani zbatohet edhe për modalitetin tcp.mode http backends.

Për më tepër, në HAProxy tani është e mundur të vendosen kufizime për kërkesa të caktuara lejohet nga protokolli HTTP/2 që mund të shkaktojë probleme, duke ju lejuar të identifikoni aplikacione të gabuara ose klientë me sjellje të papërshtatshme

Në HAProxy 3.0, është paraqitur një direktivë e re "udhëzuese", kjo direktivë mund të përdoret në seksione "frontend", "backend" dhe "dëgjo" për të lidhur një identifikues unik me këto seksione, duke lejuar që statistikat e lidhura të ruhen edhe pas rindezjes. Për më tepër, komanda "dump statistics file" është shtuar për të ruajtur statistikat në një skedar dhe direktiva "statistics file" është shtuar për të lexuar statistikat nga një skedar pas rindezjes.

Gjithashtu, Sasia e të dhënave që mund të merren është zgjeruar, duke ju lejuar të kërkoni informacione për numrin e seancave të hapura HTTP, madhësinë e radhës së kërkesës dhe numrin e lejuar të seancave të njëkohshme.

Nga ana tjetër, dhel performanca e zonave të ruajtjes së memories të krijuara me tavolinë ngjitëse është rritur ndjeshëm duke zbatuar një mekanizëm më efikas të kyçjes, i cili përmirëson ndjeshëm performancën në sistemet me shumë fije. Për shembull, në një sistem me 80 fije, performanca është rritur me 6 herë.

Në konfigurimet me shumë sajte ku certifikata TLS zgjidhet bazuar në ID-në e hostit të ofruar nga ekstensioni TLS SNI, argumenti "default-crt" është shtuar për të zgjedhur një certifikatë të paracaktuar nëse certifikatat ekzistuese nuk përputhen me sajtin.

Se shtoi veprimet "set-fc-tos" dhe "set-bc-tos" për të zëvendësuar fushën DS (Shërbimet e diferencuara) në paketat IP në pjesën e pasme ose frontin, dhe veprimet "set-fc-mark" dhe "set-bc-mark" për të shënuar paketat IP për lidhjen e mëvonshme me një tabelë specifike të rrugëtimit.

Tani është e ndaluar të dërgohen komanda të shumta në Runtime API në një kërkesë të ndarë nga një karakter i linjës së re; vendosja e fjalës kyçe "të aktivizuar" për serverët dinamikë është e ndaluar; dhe verifikimi i URI-ve jo standarde është forcuar.

ndryshime të tjera që bien në sy të këtij versioni të ri:

  • Prefiksi "@virt" mund të përdoret për të krijuar skedarë hartash virtuale dhe ACL që nuk ruhen në disk, me përmbajtje të menaxhuar përmes API-së së "Runtime".
  • Prefiksi "@opt" është i disponueshëm i cili përdor skedarë virtualë vetëm nëse nuk ka skedarë të vërtetë në disk.
  •  Analiza tani është më e rreptë gjatë përpunimit HTTP/1 për vërtetimin e objektivit të kërkesës.
  • Janë futur direktiva globale (http-err-codes dhe http-fail-codes) që ju lejojnë të vendosni kodet e statusit HTTP për t'u gjurmuar.
  • Metoda uuid Fetch tani merr një argument opsional që e vendos versionin e UUID në 4 ose 7
  • Performanca e skripteve Lua me një fije të vetme të ngarkuar duke përdorur direktivën "lua-load" është përmirësuar ndjeshëm.
  • Formatimi i linjave të regjistrave në JSON dhe CBOR tani mbështetet.
  • Tani është e mundur të krijohen identifikues në formatin UUIDv7.

më në fund nëse jeni të interesuar të dinë më shumë për të, ju mund të kontrolloni detajet në lidhja vijuese.