HAProxy популярния софтуер за балансиране на натоварването с отворен код, наскоро обяви старта на новата версия на "HAProxy 3.0", който идва с поредица от актуализации, които обещават да подобрят простотата, производителността, надеждността и сигурността.
За тези, които не знаят за HAProxy, трябва да знаете, че това е средство за балансиране на натоварването, което ви позволява да разпределяте HTTP трафик и TCP заявки между група сървъри. HAProxy взема предвид множество фактори, като наличност на сървъра, оценка на нивото на натоварване и прилагане на противодействие на DDoS.
Основни нови характеристики на HAProxy 3.0
Тази нова версия, която е представена на HAProxy 3.0, се позиционира като версия за дългосрочна поддръжка (LTS) и ще се поддържа до 2029 г. и има нов раздел crt-store който предоставя гъвкав начин за съхраняване и използване на SSL сертификати, разделяйки съхранението от използването на интерфейса. Това ви позволява да укажете индивидуално местоположенията на всеки компонент на сертификата, като файлове със сертификати, файлове с ключове и файлове с отговори на OCSP.
Друга от промените, която се откроява, е Разширени възможности за балансиране на Syslog съобщения. Споменава се, че е постигнат напредък, така че вече можете да задавате тегла на сървърните линии във вашия режим logbackends. Междувременно лепкавият алгоритъм, който беше ограничен до регистриране на бекендове, сега се прилага и за режим tcp.mode http бекендове.
Освен това в HAProxy вече е възможно да зададете ограничения за определени заявки позволено от протокола HTTP/2, което може да причини проблеми, което ви позволява да идентифицирате дефектни приложения или клиенти с неподходящо поведение
В HAProxy 3.0, е представена нова "guid" директива, тази директива може да се използва в раздели "frontend", "backend" и "listen" за свързване на уникален идентификатор към тези секции, позволявайки свързаните статистики да бъдат запазени дори след рестартиране. Освен това е добавена командата "dump statistics file" за запазване на статистики във файл и директивата "statistics file" е добавена за четене на статистики от файл след рестартиране.
Също така, Обемът на данните, които могат да бъдат получени, е разширен, което ви позволява да поискате информация за броя отворени HTTP сесии, размера на опашката за заявки и разрешения брой едновременни сесии.
От друга страна иl производителност на областите за съхранение на паметта, създадени с stick-table се увеличи значително чрез прилагане на по-ефективен заключващ механизъм, който значително подобрява производителността на многонишкови системи. Например, на система с 80 нишки, производителността се е увеличила 6 пъти.
В конфигурации с множество сайтове, където TLS сертификатът е избран въз основа на ИД на хоста, предоставен от TLS SNI разширението, аргументът "default-crt" е добавен за избор на сертификат по подразбиране, ако съществуващите сертификати не съответстват на сайта.
Se добави действията „set-fc-tos“ и „set-bc-tos“, за да замени полето DS (Диференцирани услуги) на IP пакети в задната или предната част и действията „set-fc-mark“ и „set-bc-mark“ за маркиране на IP пакети за по-късно обвързване към конкретна таблица за маршрутизиране.
Сега е забранено да се изпращат множество команди към Runtime API в една заявка, разделени със знак за нов ред; задаването на ключовата дума „enabled“ за динамични сървъри е забранено; и проверката на нестандартни URI е засилена.
От други промени, които се открояват на тази нова версия:
- Префиксът "@virt" може да се използва за създаване на виртуална карта и ACL файлове, които не са записани на диск, със съдържание, управлявано чрез API за изпълнение.
- Наличен е префиксът „@opt“, който използва виртуални файлове само ако на диска няма реални файлове.
- Разборът вече е по-строг по време на HTTP/1 обработката за валидиране на целта на заявката.
- Бяха въведени глобални директиви (http-err-codes и http-fail-codes), които ви позволяват да зададете HTTP кодовете за състояние за проследяване.
- Методът uuid Fetch вече приема незадължителен аргумент, който задава версията на UUID на 4 или 7
- Производителността на еднонишковите Lua скриптове, заредени с помощта на директивата "lua-load", е значително подобрена.
- Вече се поддържа форматиране на редове в журнала в JSON и CBOR.
- Вече е възможно да се създават идентификатори във формат UUIDv7.
най-накрая, ако сте заинтересовани да научите повече за това, можете да проверите подробностите в следваща връзка.