Выпуск nginx 1.29.6

Опубликован выпуск основной ветки nginx 1.29.6, в которой продолжается развитие новых возможностей. В параллельно поддерживаемую стабильную ветку 1.28.x вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей. В дальнейшем на базе основной ветки 1.29.x будет сформирована стабильная ветка 1.30. Код проекта написан на языке Си и распространяется под лицензией BSD.

В новом выпуске добавлена возможность привязки сеансов клиентов к одним и тем же серверам в группе. Доступно три метода: «cookie» — передача данных о выбранном сервере через указанную Cookie; «route» — проксируемый сервер назначает клиенту маршрут при получении первого запроса; «learn» — nginx анализирует ответы от upstream-сервера и запоминает начатые сервером сеансы. Для настройки привязки в блок «upstream» модуля «http» добавлена директива «sticky», а в директиву «server» добавлены параметры «route» и «drain». # Через Cookie srv_id выставляется сервер «a» или «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=/; } # Маршрут берётся из Cookie «JSESSIONID» или если она не выставлена из параметра jsessionid в 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; } # upstream-сервер создаёт сеанс, выставив при первом ответе Cookie «EXAMPLECOOKIE». # Остальные запросы с данной Cookie направляются к одному серверу. 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; }

Источник: opennet.ru

Добавить комментарий