HAProxy der beliebte Open-Source-Software-Load-Balancer, hat kürzlich den Start von angekündigt die neue Version von „HAProxy 3.0“, das mit einer Reihe von Updates geliefert wird, die eine Verbesserung der Einfachheit, Leistung, Zuverlässigkeit und Sicherheit versprechen.
Wer HAProxy nicht kennt, sollte das wissen ist ein Load Balancer, mit dem Sie HTTP-Verkehr und TCP-Anfragen verteilen können zwischen einer Gruppe von Servern. HAProxy berücksichtigt zahlreiche Faktoren wie Serververfügbarkeit, Belastungsbewertung und Implementierung von DDoS-Gegenmaßnahmen.
Wichtigste neue Funktionen von HAProxy 3.0
Diese neue Version, die von HAProxy 3.0 vorgestellt wird, ist als Langzeit-Support-Version positioniert (LTS) und wird bis 2029 unterstützt hat einen neuen CRT-Store-Bereich Dies bietet eine flexible Möglichkeit zum Speichern und Verwenden von SSL-Zertifikaten und trennt die Speicherung von der Verwendung auf einem Frontend. Auf diese Weise können Sie die Speicherorte jeder Zertifikatskomponente, z. B. Zertifikatsdateien, Schlüsseldateien und OCSP-Antwortdateien, individuell angeben.
Eine weitere herausragende Änderung ist die Erweiterte Funktionen zum Ausgleich von Syslog-Nachrichten. Es wird erwähnt, dass Fortschritte erzielt wurden, so dass Sie jetzt in Ihren Modus-Logbackends Gewichtungen für Serverzeilen festlegen können. Mittlerweile gilt der Sticky-Algorithmus, der bisher auf die Registrierung von Backends beschränkt war, nun auch für HTTP-Backends im Modus tcp.mode.
Darüber hinaus in HAProxy Es ist nun möglich, Einschränkungen für bestimmte Anfragen festzulegen Dies kann durch das HTTP/2-Protokoll zugelassen werden und kann Probleme verursachen, sodass Sie fehlerhafte Anwendungen oder Clients mit unangemessenem Verhalten identifizieren können
In HAProxy 3.0, eine neue „Guid“-Richtlinie wird vorgestellt, Diese Direktive kann in Abschnitten verwendet werden „Frontend“, „Backend“ und „listen“ um eine eindeutige Kennung mit diesen Abschnitten zu verknüpfen, So können zugehörige Statistiken auch nach einem Neustart gespeichert werden. Darüber hinaus wurde der Befehl „Dump Statistics File“ hinzugefügt, um Statistiken in einer Datei zu speichern, und die Direktive „Statistics File“ wurde hinzugefügt, um Statistiken nach dem Neustart aus einer Datei zu lesen.
Sowie, Die Menge der abrufbaren Daten wurde erweitert, sodass Sie Informationen über die Anzahl offener HTTP-Sitzungen, die Größe der Anforderungswarteschlange und die zulässige Anzahl gleichzeitiger Sitzungen anfordern können.
Andererseits undl Leistung der mit Stick-Table erstellten Speicherbereiche wurde durch die Implementierung eines effizienteren Sperrmechanismus erheblich gesteigert, was die Leistung auf Multithread-Systemen erheblich verbessert. Auf einem System mit 80 Threads hat sich die Leistung beispielsweise um das Sechsfache erhöht.
In Multi-Site-Konfigurationen, in denen das TLS-Zertifikat basierend auf der von der TLS-SNI-Erweiterung bereitgestellten Host-ID ausgewählt wird, wurde das Argument „default-crt“ hinzugefügt, um ein Standardzertifikat auszuwählen, wenn vorhandene Zertifikate nicht mit der Site übereinstimmen.
Se Die Aktionen „set-fc-tos“ und „set-bc-tos“ wurden hinzugefügt, um das DS-Feld zu ersetzen (Differentiated Services) für IP-Pakete im Backend oder Frontend sowie die Aktionen „set-fc-mark“ und „set-bc-mark“ zum Markieren von IP-Paketen für die spätere Bindung an eine bestimmte Routing-Tabelle.
Es ist jetzt verboten, in einer Anfrage mehrere Befehle getrennt durch ein Zeilenumbruchzeichen an die Runtime-API zu senden; Das Setzen des Schlüsselworts „enabled“ für dynamische Server ist verboten; und die Überprüfung von nicht standardmäßigen URIs wurde verstärkt.
Der andere Änderungen, die auffallen dieser neuen Version:
- Das Präfix „@virt“ kann zum Erstellen virtueller Karten- und ACL-Dateien verwendet werden, die nicht auf der Festplatte gespeichert werden und deren Inhalte über die Runtime-API verwaltet werden.
- Es steht das Präfix „@opt“ zur Verfügung, das virtuelle Dateien nur verwendet, wenn keine realen Dateien auf der Festplatte vorhanden sind.
- Das Parsing ist jetzt während der HTTP/1-Verarbeitung zur Validierung des Anforderungsziels strenger.
- Es wurden globale Anweisungen (http-err-codes und http-fail-codes) eingeführt, mit denen Sie die zu verfolgenden HTTP-Statuscodes festlegen können.
- Die uuid Fetch-Methode akzeptiert jetzt ein optionales Argument, das die Version der UUID auf 4 oder 7 setzt
- Die Leistung von Single-Thread-Lua-Skripten, die mit der „lua-load“-Direktive geladen werden, wurde erheblich verbessert.
- Das Formatieren von Protokollzeilen in JSON und CBOR wird jetzt unterstützt.
- Es ist jetzt möglich, Bezeichner im UUIDv7-Format zu erstellen.
schließlich, wenn Sie sind daran interessiert, mehr darüber zu erfahrenkönnen Sie die Details in der überprüfen folgenden Link