HAProxy le populaire équilibreur de charge logiciel open source, a récemment annoncé le lancement de la nouvelle version de "HAProxy 3.0", qui est accompagné d'une série de mises à jour qui promettent d'améliorer la simplicité, les performances, la fiabilité et la sécurité.
Pour ceux qui ne connaissent pas HAProxy, sachez que ce est un équilibreur de charge qui vous permet de distribuer le trafic HTTP et les requêtes TCP entre un groupe de serveurs. HAProxy prend en compte de nombreux facteurs, tels que la disponibilité du serveur, l'évaluation du niveau de charge et la mise en œuvre de contre-mesures DDoS.
Principales nouveautés de HAProxy 3.0
Cette nouvelle version présentée de HAProxy 3.0, se positionne comme une version support long terme (LTS) et sera pris en charge jusqu'en 2029 et a une nouvelle section crt-store qui offre un moyen flexible de stocker et d'utiliser les certificats SSL, en séparant le stockage de l'utilisation sur une interface. Cela vous permet de spécifier individuellement les emplacements de chaque composant de certificat, tels que les fichiers de certificat, les fichiers de clés et les fichiers de réponses OCSP.
Un autre des changements qui se démarque est le Capacités étendues pour équilibrer les messages Syslog. Il est mentionné que des progrès ont été réalisés afin que vous puissiez désormais définir des poids sur les lignes de serveur dans vos modes logbackends. Pendant ce temps, l'algorithme collant, qui se limitait à l'enregistrement des backends, s'applique désormais également aux backends http en mode tcp.mode.
De plus, dans HAProxy il est désormais possible de définir des restrictions pour certaines demandes autorisé par le protocole HTTP/2 qui peut poser des problèmes, vous permettant d'identifier des applications défectueuses ou des clients ayant un comportement inapproprié
Dans HAProxy 3.0, une nouvelle directive "guid" est présentée, cette directive peut être utilisée dans les sections "frontend", "backend" et "écouter" d'associer un identifiant unique à ces rubriques, permettant de sauvegarder les statistiques associées même après le redémarrage. De plus, la commande « dump stats file » a été ajoutée pour enregistrer les statistiques dans un fichier et la directive « statistics file » a été ajoutée pour lire les statistiques d'un fichier après le redémarrage.
Aussi, La quantité de données pouvant être obtenues a été augmentée, vous permettant de demander des informations sur le nombre de sessions HTTP ouvertes, la taille de la file d'attente des requêtes et le nombre autorisé de sessions simultanées.
D'autre part, etl performances des zones de stockage mémoire créées avec stick-table a considérablement augmenté grâce à la mise en œuvre d'un mécanisme de verrouillage plus efficace, qui améliore considérablement les performances sur les systèmes multithread. Par exemple, sur un système avec 80 threads, les performances ont été multipliées par 6.
Dans les configurations multi-sites où le certificat TLS est sélectionné en fonction de l'ID d'hôte fourni par l'extension TLS SNI, l'argument « default-crt » a été ajouté pour sélectionner un certificat par défaut si les certificats existants ne correspondent pas au site.
Se ajout des actions « set-fc-tos » et « set-bc-tos » pour remplacer le champ DS (Services différenciés) sur les paquets IP sur le backend ou le frontend, et les actions « set-fc-mark » et « set-bc-mark » pour marquer les paquets IP pour une liaison ultérieure à une table de routage spécifique.
Il est désormais interdit d'envoyer plusieurs commandes à l'API Runtime dans une seule requête séparées par un caractère de nouvelle ligne ; la définition du mot-clé « activé » pour les serveurs dynamiques est interdite ; et la vérification des URI non standard a été renforcée.
De l' d'autres changements qui se démarquent de cette nouvelle version:
- Le préfixe « @virt » peut être utilisé pour créer des cartes virtuelles et des fichiers ACL qui ne sont pas enregistrés sur le disque, avec un contenu géré via l'API Runtime.
- Le préfixe « @opt » est disponible et utilise des fichiers virtuels uniquement s'il n'y a pas de fichiers réels sur le disque.
- L'analyse est désormais plus stricte lors du traitement HTTP/1 pour la validation de la cible de la requête.
- Des directives globales (http-err-codes et http-fail-codes) ont été introduites pour vous permettre de définir les codes d'état HTTP à suivre.
- La méthode uuid Fetch prend désormais un argument facultatif qui définit la version de l'UUID sur 4 ou 7.
- Les performances des scripts Lua monothread chargés à l'aide de la directive "lua-load" ont été considérablement améliorées.
- Le formatage des lignes de journal en JSON et CBOR est désormais pris en charge.
- Il est désormais possible de créer des identifiants au format UUIDv7.
enfin si tu es intéressé à en savoir plus, vous pouvez vérifier les détails dans le lien suivant