Die Ausgabe des Hauptzweigs nginx 1.29.6 wurde veröffentlicht, in der die Entwicklung neuer Möglichkeiten fortgesetzt wird. In den parallel unterstĂŒtzten stabilen Zweig 1.28.x werden nur Ănderungen vorgenommen, die mit der Behebung ernsthafter Fehler und SicherheitsanfĂ€lligkeiten zusammenhĂ€ngen. ZukĂŒnftig wird auf Basis des Hauptzweigs 1.29.x der stabile Zweig 1.30 gebildet. Der Projektcode ist in C geschrieben und wird unter der BSD-Lizenz veröffentlicht.
In der neuen Ausgabe wurde die Möglichkeit hinzugefĂŒgt, Client-Sitzungen an dieselben Server in der Gruppe zu binden. Es stehen drei Methoden zur VerfĂŒgung: âcookieâ â Ăbertragung von Daten ĂŒber das ausgewĂ€hlte Server ĂŒber das angegebene Cookie; ârouteâ â Der Proxy-Server weist dem Client einen Weg zu, wenn die erste Anfrage eingeht; âlearnâ â nginx analysiert die Antworten vom Upstream-Server und speichert die vom Server gestarteten Sitzungen. Um die Bindung einzustellen, wurde im Block âupstreamâ des Moduls âhttpâ die Direktive âstickyâ hinzugefĂŒgt, und in die Direktive âserverâ wurden die Parameter ârouteâ und âdrainâ eingefĂŒgt. # Ăber Cookie srv_id wird der Server âaâ oder âbâ zugewiesen. upstream backend { server backend1.example.com route=a; server backend2.example.com route=b; sticky cookie srv_id expires=1h domain=.example.com path=\/; } # Die Route wird entweder aus dem Cookie âJSESSIONIDâ entnommen oder, falls dieses nicht gesetzt ist, aus dem Parameter jsessionid in der 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; } # Der Upstream-Server erstellt eine Sitzung, indem er beim ersten Antwort Cookie âEXAMPLECOOKIEâ setzt. # Weitere Anfragen mit diesem Cookie werden an denselben zu einem Server. 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; }
Quelle: opennet.ru
