comparison xml/ru/docs/http/ngx_http_upstream_module.xml @ 1234:314801ed88e7

Upstream: translated the "sticky" directive.
author Yaroslav Zhuravlev <yar@nginx.com>
date Wed, 18 Jun 2014 19:19:55 +0400
parents 6cc809881694
children e0a1a929a458
comparison
equal deleted inserted replaced
1233:726e8f47763c 1234:314801ed88e7
496 </note> 496 </note>
497 </para> 497 </para>
498 498
499 </directive> 499 </directive>
500 500
501
502 <directive name="sticky">
503 <syntax><literal>cookie</literal> <value>имя</value>
504 [<literal>expires=</literal><value>время</value>]
505 [<literal>domain=</literal><value>домен</value>]
506 [<literal>path=</literal><value>путь</value>]</syntax>
507 <syntax><literal>route</literal> <value>переменная</value> ...</syntax>
508 <default/>
509 <context>upstream</context>
510 <appeared-in>1.5.7</appeared-in>
511
512 <para>
513 Включает режим привязки сеансов, в котором запросы клиента
514 будут передаваться на один и тот же сервер группы.
515 Доступны два метода:
516 <literal>cookie</literal> и <literal>route</literal>.
517 </para>
518
519 <para>
520 При использовании метода <literal>cookie</literal> информация о
521 назначенном сервере передаётся в HTTP-куке:
522 <example>
523 upstream backend {
524 server backend1.example.com;
525 server backend2.example.com;
526
527 sticky cookie srv_id expires=1h domain=.example.com path=/;
528 }
529 </example>
530 </para>
531
532 <para>
533 Запрос от клиента, ещё не привязанного к определённому серверу,
534 передаётся на сервер, выбранный согласно настроенному методу балансировки.
535 Дальнейшие запросы от этого клиента передаются на тот же сервер.
536 Если назначенный сервер не может обработать запрос, выбирается новый
537 сервер как если бы клиент не имел привязки к серверу.
538 </para>
539
540 <para>
541 Первый параметр задаёт имя куки, которую необходимо установить или проверить.
542 Дополнительные параметры могут быть следующими:
543 <list type="tag">
544
545 <tag-name><literal>expires</literal></tag-name>
546 <tag-desc>
547 Задаёт время, в течение которого браузеру необходимо хранить куку.
548 Специальное значение <literal>max</literal> устанавливает срок хранения куки до
549 31 декабря 2037 года 23:55:55 GMT.
550 Если параметр не указан, то время действия куки ограничивается сессией браузера.
551 </tag-desc>
552
553 <tag-name><literal>domain</literal></tag-name>
554 <tag-desc>
555 Задаёт домен, для которого устанавливается кука.
556 </tag-desc>
557
558 <tag-name><literal>path</literal></tag-name>
559 <tag-desc>
560 Задаёт путь, для которого устанавливается кука.
561 </tag-desc>
562
563 </list>
564 Если пропущен тот или иной параметр, то соответствующего поля в куке не будет.
565 </para>
566
567 <para>
568 При использовании метода <literal>route</literal> проксируемый сервер назначает
569 клиенту маршрут по получении первого запроса.
570 Все последующие запросы от этого клиента будут содержать информацию о
571 маршруте в куке или URI.
572 Эта информация сравнивается с параметром “<literal>route</literal>” директивы
573 <link id="server"/> для идентификации сервера, на который
574 следует проксировать запрос.
575 Если назначенный сервер не может обработать запрос, выбирается новый сервер
576 согласно настроенному методу балансировки как если бы в запросе не было
577 информации о маршруте.
578 </para>
579
580 <para>
581 Параметры метода <literal>route</literal> задают переменные, которые
582 могут содержать информацию о маршрутизации.
583 Первая непустая переменная используется для поиска соответствующего сервера.
584 </para>
585
586 <para>
587 Пример:
588 <example>
589 map $cookie_jsessionid $route_cookie {
590 ~.+\.(?P&lt;route>\w+)$ $route;
591 }
592
593 map $request_uri $route_uri {
594 ~jsessionid=.+\.(?P&lt;route>\w+)$ $route;
595 }
596
597 upstream backend {
598 server backend1.example.com route=a;
599 server backend2.example.com route=b;
600
601 sticky route $route_cookie $route_uri;
602 }
603 </example>
604 В этом примере маршрут берётся из куки “<literal>JSESSIONID</literal>”,
605 если она присутствует в запросе.
606 В противном случае используется маршрут из URI.
607 </para>
608
609 <para>
610 <note>
611 Эта директива доступна как часть
612 <commercial_version>коммерческой подписки</commercial_version>.
613 </note>
614 </para>
615
616 </directive>
617
501 </section> 618 </section>
502 619
503 620
504 <section id="variables" name="Встроенные переменные"> 621 <section id="variables" name="Встроенные переменные">
505 622