Публикувано издание на основната версия nginx 1.29.6, в която продължава развитието на нови възможности. В паралелно поддържаната стабилна версия 1.28.x се въвеждат само промени, свързани с отстраняването на сериозни грешки и уязвимости. В бъдеще на базата на основната версия 1.29.x ще бъде формирана стабилна версия 1.30. Кодът на проекта е написан на C и се разпространява под лиценза BSD.
В новото издание е добавена възможност за свързване на клиентските сесии с един и същ сървър в групата. Достъпни са три метода: „cookie“ — предаване на данни за избраната сървър чрез указаната Cookie; „route“ — проксируемият сървър назначава маршрут на клиента при получаване на първото запитване; „learn“ — nginx анализира отговорите от upstream-сървъра и запомня започнатите от сървъра сесии. За настройка на свързването в блока „upstream“ на модула „http“ е добавена директива „sticky“, а в директивата „server“ са добавени параметрите „route“ и „drain“. # Чрез Cookie srv_id се установява сървър „a“ или „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=\/; } # Маршрутът се взема от Cookie „JSESSIONID“ или, ако тя не е установена, от параметъра jsessionid в 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-сървърът създава сесия, като при първия отговор установи Cookie „EXAMPLECOOKIE“. # Останалите запитвания с тази Cookie се насочват към един сървър. 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; }
Източник: opennet.ru
