HAProxy el popular balancejador de càrrega de programari de codi obert, va donar a conèixer fa poc el llançament de la nova versió de «HAProxy 3.0», la qual arriba amb una sèrie d'actualitzacions que prometen millorar la simplicitat, rendiment, fiabilitat i seguretat.
Per als que desconeixen de HAProxy han de saber que aquest és un balancejador de càrrega que permet distribuir el trànsit HTTP i les sol·licituds TCP entre un grup de servidors. HAProxy té en compte nombrosos factors, com ara la disponibilitat de servidors, l'avaluació del nivell de càrrega i la implementació de contramesures DDoS.
Principals novetats de HAProxy 3.0
Aquesta nova versió que es presenta de HAProxy 3.0, es posiciona com una versió de suport a llarg termini ((LTS) i estarà suportada fins al 2029 i compta amb un nou apartat crt-store que proporciona una forma flexible demmagatzemar i utilitzar certificats SSL, separant lemmagatzematge de lús en un frontend. Això permet especificar individualment les ubicacions de cada component del certificat, com ara fitxers de certificats, fitxers de claus i fitxers de respostes OCSP.
Un altre dels canvis que es destaca, és la ampliació de les capacitats per equilibrar missatges Syslog. S'esmenta que s'ha progressat perquè ara pugui establir pesos a les línies del servidor en els seus modes logbackends. Mentrestant, l'algorisme sticky, que s'havia limitat a registrar backends, ara s'aplica també als backends mode tcp.mode http
A més, a HAProxy ara és possible establir restriccions per a certes sol·licituds permeses pel protocol HTTP/2 que poden causar problemes, cosa que permet identificar aplicacions defectuoses o clients amb comportaments inapropiats
A HAProxy 3.0, es presenta una nova directiva «guid», aquesta directiva es pot utilitzar a les seccions «frontend», «backend» i «listen» per vincular un identificador únic a aquestes seccions, permetent desar les estadístiques associades fins i tot després de reiniciar. A més, s'ha afegit l'ordre «bolcar fitxer d'estadístiques» per desar estadístiques en un fitxer i la directiva «arxiu d'estadístiques» per llegir estadístiques des d'un fitxer després de reiniciar.
també, s'ha ampliat la quantitat de dades que es poden obtenir, permetent sol·licitar informació sobre el nombre de sessions HTTP obertes, la mida de la cua de sol·licituds i el nombre permès de sessions simultànies.
D'altra banda, il rendiment de les àrees d'emmagatzematge en memòria creades amb stick-table ha augmentat significativament, en implementar un mecanisme de bloqueig més eficient, cosa que millora notablement el rendiment en sistemes amb múltiples fils. Per exemple, en un sistema amb 80 subprocessos, el rendiment s'ha incrementat 6 cops.
En configuracions de múltiples llocs on el certificat TLS se selecciona segons l'ID de host proporcionada per l'extensió TLS SNI, s'ha afegit l'argument default-crt per seleccionar un certificat predeterminat si els certificats existents no coincideixen amb el lloc.
Se han afegit les accions set-fc-tos i set-bc-tos per substituir el camp DS (Serveis diferenciats) en paquets IP al backend o frontend, i les accions set-fc-mark i set-bc-mark per marcar paquets IP per a la seva posterior vinculació a una taula d'encaminament específica.
Ara està prohibit enviar diverses ordres a l'API Runtime en una sol·licitud separades per un caràcter de nova línia; està prohibit establir la paraula clau enabled per a servidors dinàmics; i s'ha reforçat la verificació d'URI no estàndard.
Dels altres canvis que es destaquen d'aquesta nova versió:
- Es pot utilitzar el prefix @virt per crear fitxers de mapes i ACL virtuals que no es guarden al disc, amb contingut gestionat mitjançant l'API Runtime.
- Està disponible el prefix «@opt» que utilitza fitxers virtuals només si no hi ha cap fitxer real al disc.
- L'anàlisi és ara més estricta durant el processament HTTP/1 per a la validació de l'objectiu de sol·licitud.
- S'han introduït directives globals (http-err-codes i http-fail-codes) que permeten establir els codis d'estat HTTP que es volen rastrejar.
- El uuid el mètode Fetch ara pren un argument opcional que estableix la versió del UUID a 4 o 7
- S'ha millorat significativament el rendiment dels scripts Lua d'un sol subprocés carregats mitjançant la directiva “lua-load”.
- Ara es suporta el format de línies de registre a JSON i CBOR.
- Ara podeu crear identificadors en format UUIDv7.
Finalment si estàs interessat a poder conèixer més sobre això, Pots consultar els detalls al següent enllaç.