Die Hauptversion nginx 1.29.6 wurde veröffentlicht, die die Entwicklung neuer Funktionen fortsetzt. In der parallel unterstützten stabilen Version 1.28.x werden nur Änderungen zur Behebung schwerwiegender Fehler und Schwachstellen vorgenommen. Zukünftig wird auf der Basis der Hauptversion 1.29.x eine stabile Version 1.30 gebildet. Der Projektcode ist in C geschrieben und wird unter der BSD-Lizenz vertrieben.
In der neuen Version wurde die Möglichkeit hinzugefügt, Kunden-Sitzungen an die gleichen Server in einer Gruppe zu koppeln. Es stehen drei Methoden zur Verfügung: „Cookie“ – Übertragung von Daten über die ausgewählte Server Über das angegebene Cookie; „route“ – der Proxy-Server weist dem Client beim ersten Request eine Route zu; „learn“ – nginx analysiert die Antworten vom Upstream-Server und merkt sich die vom Server initiierten Sessions. Um das Sticky-Binding im Block „upstream“ des „http“-Moduls zu konfigurieren, wurde die Direktive „sticky“ hinzugefügt, und die Parameter „route“ und „drain“ wurden in die Direktive „server“ eingefügt. # Über das Cookie srv_id wird der Server „a“ oder „b“ festgelegt. 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, wenn dieses nicht vorhanden 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 Session, indem er beim ersten Antwort-Cookie „EXAMPLECOOKIE“ setzt. # Alle weiteren Anfragen mit diesem Cookie werden an einen einheitlichen Server weitergeleitet. 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
