# HG changeset patch # User Yaroslav Zhuravlev # Date 1403104795 -14400 # Node ID 314801ed88e7ebddefbd3a1e1269b4d34a8497a6 # Parent 726e8f47763cd69bbbb199cea690db7c5d5140b2 Upstream: translated the "sticky" directive. diff --git a/xml/ru/docs/http/ngx_http_upstream_module.xml b/xml/ru/docs/http/ngx_http_upstream_module.xml --- a/xml/ru/docs/http/ngx_http_upstream_module.xml +++ b/xml/ru/docs/http/ngx_http_upstream_module.xml @@ -498,6 +498,123 @@ server { + + +cookie имя +[expires=время] +[domain=домен] +[path=путь] +route переменная ... + +upstream +1.5.7 + + +Включает режим привязки сеансов, в котором запросы клиента +будут передаваться на один и тот же сервер группы. +Доступны два метода: +cookie и route. + + + +При использовании метода cookie информация о +назначенном сервере передаётся в HTTP-куке: + +upstream backend { + server backend1.example.com; + server backend2.example.com; + + sticky cookie srv_id expires=1h domain=.example.com path=/; +} + + + + +Запрос от клиента, ещё не привязанного к определённому серверу, +передаётся на сервер, выбранный согласно настроенному методу балансировки. +Дальнейшие запросы от этого клиента передаются на тот же сервер. +Если назначенный сервер не может обработать запрос, выбирается новый +сервер как если бы клиент не имел привязки к серверу. + + + +Первый параметр задаёт имя куки, которую необходимо установить или проверить. +Дополнительные параметры могут быть следующими: + + +expires + +Задаёт время, в течение которого браузеру необходимо хранить куку. +Специальное значение max устанавливает срок хранения куки до +31 декабря 2037 года 23:55:55 GMT. +Если параметр не указан, то время действия куки ограничивается сессией браузера. + + +domain + +Задаёт домен, для которого устанавливается кука. + + +path + +Задаёт путь, для которого устанавливается кука. + + + +Если пропущен тот или иной параметр, то соответствующего поля в куке не будет. + + + +При использовании метода route проксируемый сервер назначает +клиенту маршрут по получении первого запроса. +Все последующие запросы от этого клиента будут содержать информацию о +маршруте в куке или URI. +Эта информация сравнивается с параметром “route” директивы + для идентификации сервера, на который +следует проксировать запрос. +Если назначенный сервер не может обработать запрос, выбирается новый сервер +согласно настроенному методу балансировки как если бы в запросе не было +информации о маршруте. + + + +Параметры метода route задают переменные, которые +могут содержать информацию о маршрутизации. +Первая непустая переменная используется для поиска соответствующего сервера. + + + +Пример: + +map $cookie_jsessionid $route_cookie { + ~.+\.(?P<route>\w+)$ $route; +} + +map $request_uri $route_uri { + ~jsessionid=.+\.(?P<route>\w+)$ $route; +} + +upstream backend { + server backend1.example.com route=a; + server backend2.example.com route=b; + + sticky route $route_cookie $route_uri; +} + +В этом примере маршрут берётся из куки “JSESSIONID”, +если она присутствует в запросе. +В противном случае используется маршрут из URI. + + + + +Эта директива доступна как часть +коммерческой подписки. + + + + +