È stato pubblicato il rilascio della versione principale di nginx 1.29.6, che continua lo sviluppo di nuove funzionalità. Nella versione stabile supportata simultaneamente 1.28.x vengono apportate solo modifiche relative alla correzione di gravi errori e vulnerabilità. In futuro, sulla base della versione principale 1.29.x sarà formata la versione stabile 1.30. Il codice del progetto è scritto in C e distribuito sotto licenza BSD.
La nuova versione ha introdotto la possibilità di legare le sessioni dei clienti agli stessi server in un gruppo. Sono disponibili tre metodi: "cookie" — trasmissione dei dati sul server scelto server tramite il cookie specificato; "route" — il server proxy assegna un percorso al cliente al primo ricevimento della richiesta; "learn" — nginx analizza le risposte dal server upstream e memorizza le sessioni iniziate dal server. Per configurare il legame, è stata aggiunta la direttiva "sticky" nel blocco "upstream" del modulo "http", e sono stati aggiunti i parametri "route" e "drain" nella direttiva "server". # Con il cookie srv_id viene assegnato il server "a" o "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=/; } # Il percorso viene preso dal cookie "JSESSIONID" o, se non impostato, dal parametro jsessionid nell'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; } # Il server upstream crea una sessione, impostando il cookie "EXAMPLECOOKIE" nella prima risposta. # Le richieste successive con questo cookie vengono inviate a uno 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; }
Fonte: opennet.ru
