Opublikowano wersję głównej gałęzi nginx 1.29.6, w której kontynuowany jest rozwój nowych możliwości. W równolegle wspieranej stabilnej gałęzi 1.28.x wprowadzane są tylko zmiany związane z usuwaniem poważnych błędów i podatności. W przyszłości na podstawie głównej gałęzi 1.29.x zostanie utworzona stabilna gałąź 1.30. Kod projektu napisany jest w języku C i jest rozpowszechniany na licencji BSD.
W nowej wersji dodano możliwość przypisywania sesji klientów do tych samych serwerów w grupie. Dostępne są trzy metody: „cookie” — przekazywanie danych o wybranym serwerze przez określone Cookie; „route” — serwer proxy przypisuje klientowi trasę po otrzymaniu pierwszego żądania; „learn” — nginx analizuje odpowiedzi od serwera upstream i zapamiętuje rozpoczęte przez serwer sesje. Aby skonfigurować przypisanie, do bloku „upstream” modułu „http” dodano dyrektywę „sticky”, a do dyrektywy „server” dodano parametry „route” i „drain”. # Przez Cookie srv_id ustawiany jest serwer „a” lub „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 pobierana jest z Cookie „JSESSIONID” lub jeśli nie jest ustawiona, z parametru jsessionid w 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; } # Serwer upstream tworzy sesję, ustawiając przy pierwszej odpowiedzi Cookie „EXAMPLECOOKIE”. # Pozostałe żądania z tym Cookie kierowane są do jednego serwera. 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; }
Źródło: opennet.ru
