A fost publicat lansarea versiunii principale nginx 1.29.6, în care continuă dezvoltarea noilor funcționalități. În ramura stabilă 1.28.x, care este întreținută în paralel, se fac doar modificări legate de corectarea erorilor grave și vulnerabilităților. Ulterior, pe baza versiunii principale 1.29.x se va forma o ramură stabilă 1.30. Codul proiectului este scris în limbajul C și este distribuit sub licența BSD.
În noua lansare a fost adăugată posibilitatea de a lega sesiunile clienților la aceleași servere dintr-un grup. Sunt disponibile trei metode: „cookie” — transmiterea datelor despre alegerea server prin intermediul cookie-ului specificat; „route” — serverul proxy atribuie clientului un traseu la primirea primei cereri; „learn” — nginx analizează răspunsurile de la serverul upstream și își amintește sesiunile inițiate de server. Pentru configurarea legării, în blocul „upstream” al modulului „http” a fost adăugată directiva „sticky”, iar în directiva „server” au fost adăugate parametrii „route” și „drain”. # Prin Cookie srv_id se stabilește serverul „a” sau „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=\/; } # Traseul este obținut din Cookie „JSESSIONID” sau, dacă nu este setată, din parametrul jsessionid din 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; } # serverul upstream creează o sesiune, stabilind, la primul răspuns, Cookie „EXAMPLECOOKIE”. # Celelalte cereri cu acest cookie sunt direcționate către unul 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; }
Sursa: opennet.ro
