Byla vydána hlavní verze nginx 1.29.6, ve které pokračuje rozvoj nových funkcí. Do paralelně udržované stabilní větve 1.28.x jsou zaváděny pouze změny související s opravou závažných chyb a zranitelností. V budoucnu bude na základě hlavní větve 1.29.x vytvořena stabilní větev 1.30. Kód projektu je napsán v jazyce C a je distribuován pod licencí BSD.
Nová verze přidává možnost přiřazení relací klientů k těmto samým serverům ve skupině. K dispozici jsou tři metody: „cookie“ — přenos dat o vybrané serveru pomocí zadaného cookie; „route“ — proxy server přiřazuje klientovi trasu při obdržení prvního dotazu; „learn“ — nginx analyzuje odpovědi od upstream serveru a pamatuje si zahájené relace serveru. Pro nastavení přiřazení byla do bloku „upstream“ modulu „http“ přidána direktiva „sticky“ a do direktivy „server“ byly přidány parametry „route“ a „drain“. # Pomocí cookie srv_id je nastavován server „a“ nebo „b“. upstream backend { server backend1.example.com route=a; server backend2.example.com route=b; sticky cookie srv_id expires=1h domain=.example.com path=\/; } # Trasa se bere z cookie „JSESSIONID“ nebo pokud není nastavena z parametru jsessionid v URI. map $cookie_jsessionid $route_cookie { ~.+\.(?P\w+)$ $route; } map $request_uri $route_uri { ~jsessionid=.+\.(?P\w+)$ $route; } upstream backend { server backend1.example.com route=a; server backend2.example.com route=b; sticky route $route_cookie $route_uri; } # upstream server vytváří relaci, když při první odpovědi nastaví cookie „EXAMPLECOOKIE“. # Ostatní dotazy s touto cookie jsou směrovány k jednomu serveru. upstream backend { server backend1.example.com:8080; server backend2.example.com:8081; sticky learn create=$upstream_cookie_examplecookie lookup=$cookie_examplecookie zone=client_sessions:1m; }
Zdroj: opennet.ru
