V utorok 13. septembra po 16 mesiacoch vývoja vyšlo HAProxy vo verzii 1.6.0. Taký čas uplynul od posledného vydania verzie 1.5. Nová verzia pozostáva z 1156 commitov od 59 ľudí. Myslím, že samotné HAProxy nemusím veľmi predstavovať – ide o jeden z najpoužívanejších HTTP a TCP load balancerov na svete, ktorý je základom aj pre komerčné riešenia.

Čo teda nové posledná verzia prináša? Podporu skriptovacieho jazyka Lua 5.3 (treba ho skompilovať), ktorý bol napríklad aj v Nginx. Schválne píšem v minulom čase nakoľko Nginx prechádza na syntax podobnú JavaScriptu. Kedže HTTP/2 je na ceste, tak HAProxy podporuje connection pooling, čiže zdieľanie session bez nutnosti vytvárania nových až po ich vypršaní. Je tu viacero politík ako sa môžu zdieľať.

Novinkou je aj SNI, čiže name-based podpora pre viacero SSL certifikátov. Ochrana proti slow-POST útokom či posielanie emailov pri zmene statusu/dostupnosti servera. Je možné volať komplikovanejšie skripty aj s checkom externých služieb a na základe nich robiť rôzne akcie.

HAProxy vo verzii 1.6 má aj inak riešené resolvovanie DNS, predtým sa preložili DNS z konfiguračného súboru a pre zmenu bolo nutné aplikáciu reštartnúť. Teraz sa preklad vykonáva asynchrónne a je to užitočné najmä tam kde sa Často mení IP, ciže napríklad v prostredí kontajnerov alebo AWS.

Zmenami prešlo aj logovanie, teraz je možné pridávať tag pre každý proces, frontend alebo backend. Ak potrebujete štatistiky, tak tie pri reštarte už nestratíte – dajú sa uložiť a pri štarte načítať. Novinkou je aj podpora identifikácie klientov, k tomu by sa čoskoro malo objaviť viac informácii.

No a aplikácia konečne pozná úvodzovky:

reqirep "^Host: www.(.*)" "Host: foobar\1"

HAProxy teda prináša celkom dosť zaujímavých vecí, zdá sa, že vývojári začali na projekte aktívne pracovať. Pred pár rokmi to totiž vyzeralo, že projekt ide do zabudnutia a myslím, že mnoho ľudí siahlo po vyššie spomínanom Nginx.