Bol založen nový vydania hlavnej vetvy nginx 1.29.6, v ktorej pokračuje rozvoj nových možností. Do paralelne podporovanej stabilnej vetvy 1.28.x sa zavádzajú iba zmeny súvisiace s odstránením závažných chýb a zraniteľností. V budúcnosti bude na základe hlavnej vetvy 1.29.x vytvorená stabilná vetva 1.30. Kód projektu je napísaný v jazyku C a je distribuovaný pod licenciou BSD.
V novom vydaní bola pridaná možnosť viazania relácií klientov na rovnaké servery v skupine. K dispozícii sú tri metódy: „cookie“ — prenos údajov o zvolených serveri cez uvedenú Cookie; „route“ — proxy server priraďuje klientovi trasu pri prijatí prvej žiadosti; „learn“ — nginx analyzuje odpovede od upstream servera a pamätá relácie iniciované serverom. Na nastavenie viazania bola do bloku „upstream“ modulu „http“ pridaná direktíva „sticky“, a do direktívy „server“ boli pridané parametre „route“ a „drain“. # Skrze Cookie srv_id je nastavený server „a“ alebo „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 sa berie z Cookie „JSESSIONID“ alebo ak nie je nastavená, z parametra 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ára reláciu, keď pri prvej odpovedi nastaví Cookie „EXAMPLECOOKIE“. # Ostatné požiadavky s touto Cookie sú smerované na jedného 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
